Class: TwitterCache::Client
- Inherits:
-
Object
- Object
- TwitterCache::Client
- Includes:
- Helpers
- Defined in:
- lib/twitter_cache/client.rb
Instance Attribute Summary collapse
-
#access_token ⇒ Object
Returns the value of attribute access_token.
-
#access_token_secret ⇒ Object
Returns the value of attribute access_token_secret.
Instance Method Summary collapse
- #current_id ⇒ Object
- #current_user ⇒ Object
- #friend_ids(id = current_id) ⇒ Object
- #friends(id = current_id, per: 100, page: 0) ⇒ Object
-
#initialize(access_token: nil, access_token_secret: nil) {|_self| ... } ⇒ Client
constructor
A new instance of Client.
- #twitter ⇒ Object
- #user(id = current_id) ⇒ Object
- #users(ids) ⇒ Object
Methods included from Helpers
Constructor Details
#initialize(access_token: nil, access_token_secret: nil) {|_self| ... } ⇒ Client
Returns a new instance of Client.
8 9 10 11 12 |
# File 'lib/twitter_cache/client.rb', line 8 def initialize(access_token: nil, access_token_secret: nil) @access_token = access_token @access_token_secret = access_token_secret yield(self) if block_given? end |
Instance Attribute Details
#access_token ⇒ Object
Returns the value of attribute access_token.
6 7 8 |
# File 'lib/twitter_cache/client.rb', line 6 def access_token @access_token end |
#access_token_secret ⇒ Object
Returns the value of attribute access_token_secret.
6 7 8 |
# File 'lib/twitter_cache/client.rb', line 6 def access_token_secret @access_token_secret end |
Instance Method Details
#current_id ⇒ Object
47 48 49 |
# File 'lib/twitter_cache/client.rb', line 47 def current_id current_user.id end |
#current_user ⇒ Object
43 44 45 |
# File 'lib/twitter_cache/client.rb', line 43 def current_user @current_user ||= twitter.current_user end |
#friend_ids(id = current_id) ⇒ Object
20 21 22 23 24 |
# File 'lib/twitter_cache/client.rb', line 20 def friend_ids(id = current_id) cache.get(friends_key(id), ttl: config.ttl) do twitter.friend_ids(id).to_a end end |
#friends(id = current_id, per: 100, page: 0) ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/twitter_cache/client.rb', line 26 def friends(id = current_id, per: 100, page: 0) ids = friend_ids(id) case page when :rand, :random users(ids.sample(per)) else start = per * page users(ids[start, per]) end end |
#twitter ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/twitter_cache/client.rb', line 51 def twitter @twitter ||= ::Twitter::REST::Client.new(config.twitter) do |conf| if token_given? conf.access_token = access_token conf.access_token_secret = access_token_secret end end end |
#user(id = current_id) ⇒ Object
14 15 16 17 18 |
# File 'lib/twitter_cache/client.rb', line 14 def user(id = current_id) cache.get(user_key(id), ttl: config.ttl) do config.convert_user(twitter.user(id)) end end |
#users(ids) ⇒ Object
37 38 39 40 41 |
# File 'lib/twitter_cache/client.rb', line 37 def users(ids) users = ids.map { |id| cache.get(user_key(id)) }.compact return users if ids.count == users.count fetch_users(ids) end |