Skip to content

Commit

Permalink
Added support for new retweeted_by and retweeted_by ids API methods
Browse files Browse the repository at this point in the history
  • Loading branch information
pengwynn committed Mar 20, 2010
1 parent c32fa81 commit 7de2d62
Show file tree
Hide file tree
Showing 3 changed files with 186 additions and 0 deletions.
6 changes: 6 additions & 0 deletions lib/twitter/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,12 @@ def retweeted_to_me(query={})
def retweets_of_me(query={})
perform_get("/#{API_VERSION}/statuses/retweets_of_me.json", :query => query)
end

# options: count, page, ids_only
def retweeters_of(id, options={})
ids_only = !!(options.delete(:ids_only))
perform_get("/#{API_VERSION}/statuses/#{id}/retweeted_by#{"/ids" if ids_only}.json", :query => options, :mash => !ids_only)
end

def status_destroy(id)
perform_post("/#{API_VERSION}/statuses/destroy/#{id}.json")
Expand Down
166 changes: 166 additions & 0 deletions test/fixtures/retweeters_of_tweet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
[
{
"contributors_enabled": false,
"created_at": "Thu Jan 18 12:47:55 +0000 2007",
"description": "You ever get an itch on your back you can't scratch?",
"favourites_count": 24,
"followers_count": 1389,
"following": null,
"friends_count": 528,
"geo_enabled": false,
"id": 659933,
"lang": "en",
"location": "Baltimore, MD",
"name": "Bryan Liles (\u30c4)",
"notifications": null,
"profile_background_color": "585858",
"profile_background_image_url": "http://a3.twimg.com/profile_background_images/3252365/twitter-bg.png",
"profile_background_tile": false,
"profile_image_url": "http://a1.twimg.com/profile_images/71274618/Photo_26_normal.jpg",
"profile_link_color": "030005",
"profile_sidebar_border_color": "141617",
"profile_sidebar_fill_color": "F8F8F8",
"profile_text_color": "000000",
"protected": false,
"screen_name": "bryanl",
"status": {
"created_at": "Sat Mar 20 12:38:08 +0000 2010",
"favorited": false,
"id": 10770771392,
"in_reply_to_screen_name": "invalidrecord",
"in_reply_to_status_id": 10770727390,
"in_reply_to_user_id": 14143472,
"source": "<a href=\"http://echofon.com/\" rel=\"nofollow\">Echofon</a>",
"text": "@invalidrecord really? you've seen one? wow ;)",
"truncated": false
},
"statuses_count": 6899,
"time_zone": "Eastern Time (US & Canada)",
"url": "http://smartic.us",
"utc_offset": -18000,
"verified": false
},
{
"contributors_enabled": false,
"created_at": "Tue Jan 27 00:34:57 +0000 2009",
"description": "Web dev guy by day. Corny joke, photography, vinyl and heavy metal music fan. Battery operated hamster enthusiast. I need more hobbies. What are yours?",
"favourites_count": 7,
"followers_count": 116,
"following": null,
"friends_count": 174,
"geo_enabled": false,
"id": 19568588,
"lang": "en",
"location": "Victoria, BC, Canada",
"name": "Jonathon Watney",
"notifications": null,
"profile_background_color": "d1d1d1",
"profile_background_image_url": "http://s.twimg.com/a/1268699350/images/themes/theme5/bg.gif",
"profile_background_tile": false,
"profile_image_url": "http://a1.twimg.com/profile_images/690859908/gary_normal.jpg",
"profile_link_color": "990000",
"profile_sidebar_border_color": "b3b3b3",
"profile_sidebar_fill_color": "e6e6e6",
"profile_text_color": "454545",
"protected": false,
"screen_name": "jonathonwatney",
"status": {
"created_at": "Sat Mar 20 03:38:55 +0000 2010",
"favorited": false,
"id": 10756267124,
"in_reply_to_screen_name": null,
"in_reply_to_status_id": null,
"in_reply_to_user_id": null,
"source": "web",
"text": "RT @BrentO: Reason 1,357 why I still prefer XP over Win7: it doesn't give me crap when I edit the hosts file and save it.",
"truncated": false
},
"statuses_count": 1240,
"time_zone": "Pacific Time (US & Canada)",
"url": null,
"utc_offset": -28800,
"verified": false
},
{
"contributors_enabled": false,
"created_at": "Thu May 08 15:53:12 +0000 2008",
"description": "Web dev'r, motorcyclist, gun shooter. Sometimes (er, most times) I talk about nerdy things.",
"favourites_count": 1,
"followers_count": 107,
"following": false,
"friends_count": 99,
"geo_enabled": false,
"id": 14701839,
"lang": "en",
"location": "Nebraska",
"name": "Adam Jahnke",
"notifications": false,
"profile_background_color": "6FB433",
"profile_background_image_url": "http://a1.twimg.com/profile_background_images/3202932/bg_2.png",
"profile_background_tile": false,
"profile_image_url": "http://a3.twimg.com/profile_images/566612101/IMG_5256w_normal.jpg",
"profile_link_color": "000000",
"profile_sidebar_border_color": "696969",
"profile_sidebar_fill_color": "6FB433",
"profile_text_color": "454545",
"protected": false,
"screen_name": "adamyonk",
"status": {
"created_at": "Fri Mar 19 21:18:55 +0000 2010",
"favorited": false,
"id": 10741609904,
"in_reply_to_screen_name": null,
"in_reply_to_status_id": null,
"in_reply_to_user_id": null,
"source": "<a href=\"http://twidroid.com\" rel=\"nofollow\">twidroid</a>",
"text": "Sorry to anyone trying to contact me via chat today. Having some connectivity issues.",
"truncated": false
},
"statuses_count": 1443,
"time_zone": "Central Time (US & Canada)",
"url": "http://adamyonk.com",
"utc_offset": -21600,
"verified": false
},
{
"contributors_enabled": false,
"created_at": "Sat Jul 26 06:44:07 +0000 2008",
"description": null,
"favourites_count": 0,
"followers_count": 50,
"following": false,
"friends_count": 52,
"geo_enabled": false,
"id": 15608533,
"lang": "en",
"location": "buzzd: 33.019368,-96.700780",
"name": "Ein2015",
"notifications": false,
"profile_background_color": "1A1B1F",
"profile_background_image_url": "http://s.twimg.com/a/1268687377/images/themes/theme9/bg.gif",
"profile_background_tile": false,
"profile_image_url": "http://a1.twimg.com/profile_images/57259620/galactica_avatar_msn_057_normal.jpg",
"profile_link_color": "2FC2EF",
"profile_sidebar_border_color": "181A1E",
"profile_sidebar_fill_color": "252429",
"profile_text_color": "666666",
"protected": false,
"screen_name": "Ein2015",
"status": {
"created_at": "Sun Mar 14 06:30:45 +0000 2010",
"favorited": false,
"id": 10459323128,
"in_reply_to_screen_name": null,
"in_reply_to_status_id": null,
"in_reply_to_user_id": null,
"source": "<a href=\"https://loopt.com\" rel=\"nofollow\">Loopt</a>",
"text": "Feel free to come if you want. @ Cairo Hookah Lounge http://loopt.us/YYGRHw.t",
"truncated": false
},
"statuses_count": 229,
"time_zone": "Central Time (US & Canada)",
"url": null,
"utc_offset": -21600,
"verified": false
}
]
14 changes: 14 additions & 0 deletions test/twitter/base_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,20 @@ class BaseTest < Test::Unit::TestCase
first.user.name.should == 'Michael D. Ivey'
first.text.should == "Trying out geotweets in Birdfeed. No \"new RT\" support, though. Any iPhone client with RTs yet?"
end

should "be able to get users who retweeted a tweet" do
stub_get('/1/statuses/9021932472/retweeted_by.json', 'retweeters_of_tweet.json')
retweeters = @twitter.retweeters_of("9021932472")
retweeters.size.should == 4
first = retweeters.first
first.screen_name.should == 'bryanl'
end

should "be able to get ids of users who retweeted a tweet" do
stub_get('/1/statuses/9021932472/retweeted_by/ids.json', 'ids.json')
retweeters = @twitter.retweeters_of("9021932472", :ids_only => true)
retweeters.first.should == 61940910
end

should "be able to get follower ids" do
stub_get('/1/followers/ids.json', 'follower_ids.json')
Expand Down

0 comments on commit 7de2d62

Please sign in to comment.