Class: Client::TwitterClient
- Inherits:
-
Object
- Object
- Client::TwitterClient
- Defined in:
- lib/favt/client.rb
Instance Method Summary collapse
- #favorite_posts ⇒ Object
- #favorites_from_user ⇒ Object
- #init_client ⇒ Object
-
#initialize(options) ⇒ TwitterClient
constructor
A new instance of TwitterClient.
- #render ⇒ Object
- #take(set_fav_posts) ⇒ Object
- #target_users ⇒ Object
- #to_set(favorites) ⇒ Object
Constructor Details
#initialize(options) ⇒ TwitterClient
Returns a new instance of TwitterClient.
17 18 19 20 21 22 23 |
# File 'lib/favt/client.rb', line 17 def initialize() yaml_file = ["config_file"] || "config.yaml" @render = ["render"] || Favt::Render @options = @config = YAML.load_file(yaml_file) self.init_client end |
Instance Method Details
#favorite_posts ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/favt/client.rb', line 47 def favorite_posts show_fav_posts = self.to_set(self.favorites_from_user.sort do |prev_post, next_post| next_post.id <=> prev_post.id end) return self.take(show_fav_posts) end |
#favorites_from_user ⇒ Object
25 26 27 28 29 30 |
# File 'lib/favt/client.rb', line 25 def favorites_from_user users = self.target_users return users.flat_map do |user| @client.favorites user end end |
#init_client ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/favt/client.rb', line 7 def init_client keys = @config["client"] @client = Twitter::REST::Client.new do |config| config.consumer_key = keys["consumer_key"] config.consumer_secret = keys["consumer_secret"] config.access_token = keys["access_token"] config.access_token_secret = keys["access_token_secret"] end end |
#render ⇒ Object
68 69 70 71 72 73 |
# File 'lib/favt/client.rb', line 68 def render self.favorite_posts.each do |_, favorite| print @render.new(favorite, @options, @config).to_s print "\n" end end |
#take(set_fav_posts) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/favt/client.rb', line 32 def take(set_fav_posts) show_count = @options["show_count"].to_i || 0 if show_count != 0 return set_fav_posts.take(show_count) end return set_fav_posts end |
#target_users ⇒ Object
40 41 42 43 44 45 |
# File 'lib/favt/client.rb', line 40 def target_users if !@options["user"] return @config["users"] end return [@options["user"]] end |
#to_set(favorites) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/favt/client.rb', line 55 def to_set(favorites) favorites_dict = {} favorites.each do |favorite| if !(favorites_dict.key? favorite.id) favorites_dict[favorite.id] = { "users" => 1, "post" => favorite} else favorites_dict[favorite.id]["users"] += 1 end end return favorites_dict end |