Class: Twitter::User
- Inherits:
-
Object
- Object
- Twitter::User
- Includes:
- ModelMixin
- Defined in:
- lib/twitter/model.rb,
lib/twitter/extras.rb
Overview
Represents a Twitter user
Constant Summary collapse
- @@ATTRIBUTES =
[:id, :name, :description, :location, :screen_name, :url, :protected, :profile_image_url, :profile_background_color, :profile_text_color, :profile_link_color, :profile_sidebar_fill_color, :profile_sidebar_border_color, :profile_background_image_url, :profile_background_tile, :utc_offset, :time_zone, :following, :notifications, :favourites_count, :followers_count, :friends_count, :statuses_count, :created_at ]
Class Method Summary collapse
-
.attributes ⇒ Object
Used as factory method callback.
-
.featured(client) ⇒ Object
Provides access to the Featured Twitter API via the Twitter4R Model interface.
-
.find(id, client) ⇒ Object
Returns user model object with given id using the configuration and credentials of the client object passed in.
Instance Method Summary collapse
-
#bless(client) ⇒ Object
Override of ModelMixin#bless method.
-
#friends ⇒ Object
Returns an Array of user objects that represents the authenticated user's friends on Twitter.
-
#is_me? ⇒ Boolean
Returns whether this Twitter::User model object represents the authenticated user of the client that blessed it.
Methods included from ModelMixin
Class Method Details
.attributes ⇒ Object
Used as factory method callback
284 |
# File 'lib/twitter/model.rb', line 284 def attributes; @@ATTRIBUTES; end |
.featured(client) ⇒ Object
Provides access to the Featured Twitter API via the Twitter4R Model interface.
The following lines of code are equivalent to each other: users1 = Twitter::User.features(client) users2 = client.featured(:users) where users1 and users2 would be logically equivalent.
35 36 37 |
# File 'lib/twitter/extras.rb', line 35 def featured(client) client.featured(:users) end |
.find(id, client) ⇒ Object
Returns user model object with given id using the configuration and credentials of the client object passed in.
You can pass in either the user's unique integer ID or the user's screen name.
291 292 293 |
# File 'lib/twitter/model.rb', line 291 def find(id, client) client.user(id) end |
Instance Method Details
#bless(client) ⇒ Object
Override of ModelMixin#bless method.
Adds #followers instance method when user object represents authenticated user. Otherwise just do basic bless.
This permits applications using Twitter4R to write Rubyish code like this: followers = user.followers if user.is_me? Or: followers = user.followers if user.respond_to?(:followers)
306 307 308 309 310 311 312 |
# File 'lib/twitter/model.rb', line 306 def bless(client) basic_bless(client) self.instance_eval(%{ self.class.send(:include, Twitter::AuthenticatedUserMixin) }) if self.is_me? and not self.respond_to?(:followers) self end |
#friends ⇒ Object
Returns an Array of user objects that represents the authenticated user's friends on Twitter.
332 333 334 |
# File 'lib/twitter/model.rb', line 332 def friends @client.user(@id, :friends) end |
#is_me? ⇒ Boolean
Returns whether this Twitter::User model object represents the authenticated user of the client that blessed it.
317 318 319 320 321 322 323 324 325 326 327 328 |
# File 'lib/twitter/model.rb', line 317 def is_me? # TODO: Determine whether we should cache this or not? # Might be dangerous to do so, but do we want to support # the edge case where this would cause a problem? i.e. # changing authenticated user after initial use of # authenticated API. # TBD: To cache or not to cache. That is the question! # Since this is an implementation detail we can leave this for # subsequent 0.2.x releases. It doesn't have to be decided before # the 0.2.0 launch. @screen_name == @client.instance_eval("@login") end |