Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

161 lines (126 sloc) 4.437 kb
module Twitter
class Base
extend Forwardable
def_delegators :@client, :get, :post
def initialize(oauth)
@client = oauth.access_token
end
# Options: since_id, max_id, count, page, since
def friends_timeline(query={})
perform_get('/statuses/friends_timeline.json', :query => query)
end
# Options: id, user_id, screen_name, since_id, max_id, page, since
def user_timeline(query={})
perform_get('/statuses/user_timeline.json', :query => query)
end
def status(id)
perform_get("/statuses/show/#{id}.json")
end
# Options: in_reply_to_status_id
def update(status, query={})
perform_post("/statuses/update.json", :body => {:status => status}.merge(query))
end
# Options: since_id, max_id, since, page
def replies(query={})
perform_get('/statuses/replies.json', :query => query)
end
def status_destroy(id)
perform_post("/statuses/destroy/#{id}.json")
end
# Options: id, user_id, screen_name, page
def friends(query={})
perform_get('/statuses/friends.json', :query => query)
end
# Options: id, user_id, screen_name, page
def followers(query={})
perform_get('/statuses/followers.json', :query => query)
end
def user(id)
perform_get("/users/show/#{id}.json")
end
# Options: since, since_id, page
def direct_messages(query={})
perform_get("/direct_messages.json", :query => query)
end
# Options: since, since_id, page
def direct_messages_sent(query={})
perform_get("/direct_messages/sent.json", :query => query)
end
def direct_message_create(user, text)
perform_post("/direct_messages/new.json", :body => {:user => user, :text => text})
end
def direct_message_destroy(id)
perform_post("/direct_messages/destroy/#{id}.json")
end
def friendship_create(id, follow=false)
perform_post("/friendships/create/#{id}.json", :body => {:follow => follow})
end
def friendship_destroy(id)
perform_post("/friendships/destroy/#{id}.json")
end
def friendship_exists?(a, b)
perform_get("/friendships/exists.json", :query => {:user_a => a, :user_b => b})
end
# Options: id, user_id, screen_name
def friend_ids(query={})
perform_get("/friends/ids.json", :query => query)
end
# Options: id, user_id, screen_name
def friend_ids(query={})
perform_get("/followers/ids.json", :query => query)
end
def verify_credentials
perform_get("/account/verify_credentials.json")
end
# Device must be sms, im or none
def update_delivery_device(device)
perform_post('/account/update_delivery_device.json', :body => {:device => device})
end
# One or more of the following must be present:
# profile_background_color, profile_text_color, profile_link_color,
# profile_sidebar_fill_color, profile_sidebar_border_color
def update_profile_colors(colors={})
perform_post('/account/update_profile_colors.json', :body => colors)
end
def rate_limit_status
perform_get('/account/rate_limit_status.json')
end
# One or more of the following must be present:
# name, email, url, location, description
def update_profile(body={})
perform_post('/account/update_profile.json', :body => body)
end
# Options: id, page
def favorites(query={})
perform_get('/favorites.json', :query => query)
end
def favorite_create(id)
perform_post("/favorites/create/#{id}.json")
end
def favorite_destroy(id)
perform_post("/favorites/destroy/#{id}.json")
end
def enable_notifications(id)
perform_post("/notifications/follow/#{id}.json")
end
def disable_notifications(id)
perform_post("/notifications/leave/#{id}.json")
end
def block(id)
perform_post("/blocks/create/#{id}.json")
end
def unblock(id)
perform_post("/blocks/destroy/#{id}.json")
end
def help
perform_get('/help/test.json')
end
private
def perform_get(path, options={})
Twitter::Request.get(self, path, options)
end
def perform_post(path, options={})
Twitter::Request.post(self, path, options)
end
end
end
Jump to Line
Something went wrong with that request. Please try again.