Class: Twitter::Base
- Inherits:
-
Object
- Object
- Twitter::Base
- Defined in:
- lib/twitter/base.rb
Instance Method Summary collapse
-
#block(id) ⇒ Object
Blocks the user specified by id for the auth user.
-
#create_favorite(id) ⇒ Object
Favorites the status specified by id for the auth user.
-
#create_friendship(id_or_screenname) ⇒ Object
Befriends id_or_screenname for the auth user.
-
#d(user, text) ⇒ Object
Sends a direct message
texttouser. -
#destroy(id) ⇒ Object
Destroys a status by id.
-
#destroy_direct_message(id) ⇒ Object
destroys a give direct message by id if the auth user is a recipient.
-
#destroy_favorite(id) ⇒ Object
Un-favorites the status specified by id for the auth user.
-
#destroy_friendship(id_or_screenname) ⇒ Object
Defriends id_or_screenname for the auth user.
-
#direct_messages(options = {}) ⇒ Object
(also: #received_messages)
Returns an array of all the direct messages for the authenticated user.
-
#favorites(options = {}) ⇒ Object
Returns the most recent favorite statuses for the autenticating user.
-
#featured ⇒ Object
waiting for twitter to correctly implement this in the api as it is documented.
-
#follow(id_or_screenname) ⇒ Object
Turns notifications by id_or_screenname on for auth user.
-
#followers(options = {}) ⇒ Object
Returns an array of users who are following you.
- #followers_for(id, options = {}) ⇒ Object
-
#friends(options = {}) ⇒ Object
Returns an array of users who are in your friends list.
-
#friends_for(id, options = {}) ⇒ Object
Returns an array of users who are friends for the id or username passed in.
-
#friendship_exists?(user_a, user_b) ⇒ Boolean
Returns true if friendship exists, false if it doesn’t.
-
#initialize(email, password, options = {}) ⇒ Base
constructor
Initializes the configuration for making requests to twitter Twitter example: Twitter.new(‘email/username’, ‘password’).
-
#leave(id_or_screenname) ⇒ Object
Turns notifications by id_or_screenname off for auth user.
-
#post(status, options = {}) ⇒ Object
(also: #update)
Posts a new update to twitter for auth user.
- #rate_limit_status ⇒ Object
-
#replies(options = {}) ⇒ Object
Returns an array of statuses that are replies.
-
#sent_messages(options = {}) ⇒ Object
Returns direct messages sent by auth user.
-
#status(id) ⇒ Object
Returns a single status for a given id.
-
#timeline(which = :friends, options = {}) ⇒ Object
Returns an array of statuses for a timeline; Defaults to your friends timeline.
- #timeout ⇒ Object
- #timeout=(time) ⇒ Object
-
#unblock(id) ⇒ Object
Unblocks the user specified by id for the auth user.
-
#update_delivery_device(device) ⇒ Object
Updates your deliver device and returns Twitter::User object.
-
#update_location(location) ⇒ Object
Updates your location and returns Twitter::User object.
-
#user(id_or_screenname) ⇒ Object
returns all the profile information and the last status for a user.
-
#verify_credentials ⇒ Object
Verifies the credentials for the auth user.
Constructor Details
#initialize(email, password, options = {}) ⇒ Base
Initializes the configuration for making requests to twitter Twitter example:
Twitter.new('email/username', 'password')
Identi.ca example:
Twitter.new('email/username', 'password', :api_host => 'identi.ca/api')
14 15 16 17 |
# File 'lib/twitter/base.rb', line 14 def initialize(email, password, ={}) @config, @config[:email], @config[:password] = {}, email, password @api_host = .delete(:api_host) || 'twitter.com' end |
Instance Method Details
#block(id) ⇒ Object
Blocks the user specified by id for the auth user
157 158 159 |
# File 'lib/twitter/base.rb', line 157 def block(id) users(request("blocks/create/#{id}.xml", :auth => true, :method => :post)).first end |
#create_favorite(id) ⇒ Object
Favorites the status specified by id for the auth user
147 148 149 |
# File 'lib/twitter/base.rb', line 147 def create_favorite(id) statuses(request("favorites/create/#{id}.xml", :auth => true, :method => :post)).first end |
#create_friendship(id_or_screenname) ⇒ Object
Befriends id_or_screenname for the auth user
106 107 108 |
# File 'lib/twitter/base.rb', line 106 def create_friendship(id_or_screenname) users(request("friendships/create/#{id_or_screenname}.xml", :auth => true, :method => :post)).first end |
#d(user, text) ⇒ Object
Sends a direct message text to user
101 102 103 |
# File 'lib/twitter/base.rb', line 101 def d(user, text) DirectMessage.new_from_xml(request('direct_messages/new.xml', :auth => true, :method => :post, :form_data => {'text' => text, 'user' => user})) end |
#destroy(id) ⇒ Object
Destroys a status by id
69 70 71 |
# File 'lib/twitter/base.rb', line 69 def destroy(id) call("destroy/#{id}") end |
#destroy_direct_message(id) ⇒ Object
destroys a give direct message by id if the auth user is a recipient
96 97 98 |
# File 'lib/twitter/base.rb', line 96 def (id) DirectMessage.new_from_xml(request("direct_messages/destroy/#{id}.xml", :auth => true, :method => :post)) end |
#destroy_favorite(id) ⇒ Object
Un-favorites the status specified by id for the auth user
152 153 154 |
# File 'lib/twitter/base.rb', line 152 def destroy_favorite(id) statuses(request("favorites/destroy/#{id}.xml", :auth => true, :method => :post)).first end |
#destroy_friendship(id_or_screenname) ⇒ Object
Defriends id_or_screenname for the auth user
111 112 113 |
# File 'lib/twitter/base.rb', line 111 def destroy_friendship(id_or_screenname) users(request("friendships/destroy/#{id_or_screenname}.xml", :auth => true, :method => :post)).first end |
#direct_messages(options = {}) ⇒ Object Also known as: received_messages
Returns an array of all the direct messages for the authenticated user
83 84 85 86 |
# File 'lib/twitter/base.rb', line 83 def (={}) doc = request(build_path('direct_messages.xml', ()), {:auth => true, :since => [:since]}) (doc/:direct_message).inject([]) { |dms, dm| dms << DirectMessage.new_from_xml(dm); dms } end |
#favorites(options = {}) ⇒ Object
Returns the most recent favorite statuses for the autenticating user
142 143 144 |
# File 'lib/twitter/base.rb', line 142 def favorites(={}) statuses(request(build_path('favorites.xml', ()), :auth => true)) end |
#featured ⇒ Object
waiting for twitter to correctly implement this in the api as it is documented
78 79 80 |
# File 'lib/twitter/base.rb', line 78 def featured users(call(:featured)) end |
#follow(id_or_screenname) ⇒ Object
Turns notifications by id_or_screenname on for auth user.
132 133 134 |
# File 'lib/twitter/base.rb', line 132 def follow(id_or_screenname) users(request("notifications/follow/#{id_or_screenname}.xml", :auth => true, :method => :post)).first end |
#followers(options = {}) ⇒ Object
Returns an array of users who are following you
45 46 47 |
# File 'lib/twitter/base.rb', line 45 def followers(={}) users(call(:followers, {:args => ()})) end |
#followers_for(id, options = {}) ⇒ Object
49 50 51 |
# File 'lib/twitter/base.rb', line 49 def followers_for(id, ={}) followers(.merge({:id => id})) end |
#friends(options = {}) ⇒ Object
Returns an array of users who are in your friends list
35 36 37 |
# File 'lib/twitter/base.rb', line 35 def friends(={}) users(call(:friends, {:args => ()})) end |
#friends_for(id, options = {}) ⇒ Object
Returns an array of users who are friends for the id or username passed in
40 41 42 |
# File 'lib/twitter/base.rb', line 40 def friends_for(id, ={}) friends(.merge({:id => id})) end |
#friendship_exists?(user_a, user_b) ⇒ Boolean
Returns true if friendship exists, false if it doesn’t.
116 117 118 119 |
# File 'lib/twitter/base.rb', line 116 def friendship_exists?(user_a, user_b) doc = request(build_path("friendships/exists.xml", {:user_a => user_a, :user_b => user_b}), :auth => true) doc.at('friends').innerHTML == 'true' ? true : false end |
#leave(id_or_screenname) ⇒ Object
Turns notifications by id_or_screenname off for auth user.
137 138 139 |
# File 'lib/twitter/base.rb', line 137 def leave(id_or_screenname) users(request("notifications/leave/#{id_or_screenname}.xml", :auth => true, :method => :post)).first end |
#post(status, options = {}) ⇒ Object Also known as: update
Posts a new update to twitter for auth user.
167 168 169 170 171 |
# File 'lib/twitter/base.rb', line 167 def post(status, ={}) form_data = {'status' => status} form_data.merge!({'source' => [:source]}) if [:source] Status.new_from_xml(request('statuses/update.xml', :auth => true, :method => :post, :form_data => form_data)) end |
#rate_limit_status ⇒ Object
73 74 75 |
# File 'lib/twitter/base.rb', line 73 def rate_limit_status RateLimitStatus.new_from_xml request("account/rate_limit_status.xml", :auth => true) end |
#replies(options = {}) ⇒ Object
Returns an array of statuses that are replies
64 65 66 |
# File 'lib/twitter/base.rb', line 64 def replies(={}) statuses(call(:replies, :since => [:since], :args => ())) end |
#sent_messages(options = {}) ⇒ Object
Returns direct messages sent by auth user
90 91 92 93 |
# File 'lib/twitter/base.rb', line 90 def (={}) doc = request(build_path('direct_messages/sent.xml', ()), {:auth => true, :since => [:since]}) (doc/:direct_message).inject([]) { |dms, dm| dms << DirectMessage.new_from_xml(dm); dms } end |
#status(id) ⇒ Object
Returns a single status for a given id
54 55 56 |
# File 'lib/twitter/base.rb', line 54 def status(id) statuses(call("show/#{id}")).first end |
#timeline(which = :friends, options = {}) ⇒ Object
Returns an array of statuses for a timeline; Defaults to your friends timeline.
28 29 30 31 32 |
# File 'lib/twitter/base.rb', line 28 def timeline(which=:friends, ={}) raise UnknownTimeline unless [:friends, :public, :user].include?(which) auth = which.to_s.include?('public') ? false : true statuses(call("#{which}_timeline", :auth => auth, :since => [:since], :args => ())) end |
#timeout ⇒ Object
23 24 25 |
# File 'lib/twitter/base.rb', line 23 def timeout @config[:timeout] end |
#timeout=(time) ⇒ Object
19 20 21 |
# File 'lib/twitter/base.rb', line 19 def timeout=(time) @config[:timeout] = time end |
#unblock(id) ⇒ Object
Unblocks the user specified by id for the auth user
162 163 164 |
# File 'lib/twitter/base.rb', line 162 def unblock(id) users(request("blocks/destroy/#{id}.xml", :auth => true, :method => :post)).first end |
#update_delivery_device(device) ⇒ Object
Updates your deliver device and returns Twitter::User object
127 128 129 |
# File 'lib/twitter/base.rb', line 127 def update_delivery_device(device) users(request(build_path('account/update_delivery_device.xml', {'device' => device}), :auth => true, :method => :post)).first end |
#update_location(location) ⇒ Object
Updates your location and returns Twitter::User object
122 123 124 |
# File 'lib/twitter/base.rb', line 122 def update_location(location) users(request(build_path('account/update_location.xml', {'location' => location}), :auth => true, :method => :post)).first end |
#user(id_or_screenname) ⇒ Object
returns all the profile information and the last status for a user
59 60 61 |
# File 'lib/twitter/base.rb', line 59 def user(id_or_screenname) users(request("users/show/#{id_or_screenname}.xml", :auth => true)).first end |
#verify_credentials ⇒ Object
Verifies the credentials for the auth user.
raises Twitter::CantConnect on failure.
176 177 178 |
# File 'lib/twitter/base.rb', line 176 def verify_credentials request('account/verify_credentials', :auth => true) end |