sferik/twitter — pull request #541 by achiinto (2014-03-03 21:13:30+00:00)
Title: Correct retweet response. Retweeted status should be the original tweet

I am suggesting to revert the fix for issuse #228. As opposed to Issue #228, Twitter api response with original tweet as the retweeted_status is actually a correct behaviour. Similarly, all statuses list endpoints would consistently return the original tweet as the retweeted_status, whenever a retweet is encountered.

However, the fix for issue #228 somehow reversed the response from Twitter API for POST retweet, making the gem behaviour inconsistent when encountering a retweet.

Example,
Twitter API:
- GET statuses/user_timeline -> return original tweet as retweeted_status whenever a retweet is encountered.
- POST statuses/retweet/:id -> return original tweet as retweeted_status, nested in the new retweet created.

Twitter Gem:
- GET statuses/user_timeline -> return original tweet as retweeted_status whenever a retweet is encountered.
- POST statuses/retweet/:id -> return new retweet as retweeted_status, nested in the the original tweet.

Also, the name, "retweeted_status", implies the "status being retweeted", thus the fix on issue #228 is wrong as the developer who fixed #228 mistaken "retweeted_status" as "the status generated due to taking a retweet action". This might also suggests Twitter::Tweet with alias_method for retweet as retweeted_status is also wrong.

The twitter documentation, https://dev.twitter.com/docs/api/1.1/post/statuses/retweet/:id, has example demonstrating that original tweet is the retweeted_status. (Although the summary of the api is confusing, which I will fail a bug to api.)

Also, on a side note, Issue #228 thought that Twitter API has a bug and implemented a fix at the Gem level. I think this is a bad practice. If we think the API is faulty, we should file a bug to Twitter instead.