Skip to content
This repository
  • 13 commits
  • 16 files changed
  • 0 comments
  • 4 contributors
9  CHANGELOG.md
Source Rendered
... ...
@@ -1,3 +1,12 @@
  1
+4.1.2
  2
+-----
  3
+* [Add abort_on_exception to `Enumerable#threaded_map`](https://github.com/sferik/twitter/commit/15c9a7c221f24226c1003b76b287d2b2ed9306cb) ([@aheaven87](http://twitter.com/aheaven87))
  4
+
  5
+4.1.1
  6
+-----
  7
+* [Fix bug in `Twitter::Tweet#full_text`](https://github.com/sferik/twitter/commit/9646a5bed6d2d119b1cc1d5757113988de2516d6)
  8
+* [Add `Twitter::Tweet#favouriters`, `Twitter::User#favoriters_count`, and `Twitter::User#favouriters_count` aliases](https://github.com/sferik/twitter/commit/60fce1ea0cdf8239262ca46588b4fe766f07288e)
  9
+
1 10
 4.1.0
2 11
 -----
3 12
 * [Handle new API v1.1 list response format](https://github.com/sferik/twitter/commit/2aace25fcf946de995e5ce1788f24ad35bc79438)
2  CONTRIBUTING.md
Source Rendered
@@ -16,8 +16,10 @@ inconsistent whitespace)
16 16
 * by refactoring code
17 17
 * by fixing [issues][]
18 18
 * by reviewing patches
  19
+* [financially][pledgie]
19 20
 
20 21
 [issues]: https://github.com/sferik/twitter/issues
  22
+[pledgie]: http://pledgie.com/campaigns/18388
21 23
 
22 24
 ## Submitting an Issue
23 25
 We use the [GitHub issue tracker][issues] to track bugs and features. Before
18  README.md
Source Rendered
@@ -2,10 +2,12 @@
2 2
 [![Build Status](https://secure.travis-ci.org/sferik/twitter.png?branch=master)][travis]
3 3
 [![Dependency Status](https://gemnasium.com/sferik/twitter.png?travis)][gemnasium]
4 4
 [![Code Climate](https://codeclimate.com/badge.png)][codeclimate]
  5
+[![Click here to make a donation](http://www.pledgie.com/campaigns/18388.png)][pledgie]
5 6
 
6 7
 [travis]: http://travis-ci.org/sferik/twitter
7 8
 [gemnasium]: https://gemnasium.com/sferik/twitter
8 9
 [codeclimate]: https://codeclimate.com/github/sferik/twitter
  10
+[pledgie]: http://pledgie.com/campaigns/18388
9 11
 
10 12
 A Ruby interface to the Twitter API.
11 13
 
@@ -47,7 +49,7 @@ wiki][apps]!
47 49
 
48 50
 ## What's new in version 4?
49 51
 
50  
-### Twitter API v1.1
  52
+#### Twitter API v1.1
51 53
 
52 54
 Version 4 of this library targets Twitter API v1.1. To understand the
53 55
 implications of this change, please read the following announcements from
@@ -77,7 +79,7 @@ discussion][discussion].
77 79
 [user_timeline]: https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline
78 80
 [discussion]: https://dev.twitter.com/discussions/10644
79 81
 
80  
-### Rate Limiting
  82
+#### Rate Limiting
81 83
 
82 84
 Another consequence of Twitter API v1.1 is that the
83 85
 `Twitter::Client#rate_limit` method has been removed, since the concept of a
@@ -105,7 +107,7 @@ rescue Twitter::Error::TooManyRequests => error
105 107
   end
106 108
 end
107 109
 ```
108  
-### Methods Missing
  110
+#### Methods Missing
109 111
 
110 112
 As a consequence of moving to Twitter API v1.1, the following methods from
111 113
 version 3 are no longer available in version 4:
@@ -126,7 +128,7 @@ version 3 are no longer available in version 4:
126 128
 * `Twitter::Client#rate_limit`
127 129
 * `Twitter::RateLimit#class`
128 130
 
129  
-### Custom Endpoints
  131
+#### Custom Endpoints
130 132
 
131 133
 The `Twitter::API#update_with_media` method no longer uses the custom
132 134
 `upload.twitter.com` endpoint, so `media_endpoint` configuration has been
@@ -134,7 +136,7 @@ removed. Likewise, the `Twitter::API#search` method no longer uses the custom
134 136
 `search.twitter.com` endpoint, so `search_endpoint` configuration has also been
135 137
 removed.
136 138
 
137  
-### Errors
  139
+#### Errors
138 140
 
139 141
 It's worth mentioning new error classes:
140 142
 
@@ -149,7 +151,7 @@ library will raise `Twitter::Error::TooManyRequests` for all rate limit errors.
149 151
 The `Twitter::Error::EnhanceYourCalm` class has been aliased to
150 152
 `Twitter::Error::TooManyRequests`.
151 153
 
152  
-### Identity Map
  154
+#### Identity Map
153 155
 
154 156
 In version 4, the identity map is [disabled by default][disabled]. If you want
155 157
 to enable this feature, you can use the [default identity map][default] or
@@ -209,7 +211,7 @@ After configuration, requests can be made like so:
209 211
 Twitter.update("I'm tweeting with @gem!")
210 212
 ```
211 213
 
212  
-### Thread Safety
  214
+#### Thread Safety
213 215
 
214 216
 Applications that make requests on behalf of multiple Twitter users should
215 217
 avoid using global configuration. In this case, you may still specify the
@@ -259,7 +261,7 @@ a `Twitter::Client`:
259 261
 
260 262
 This may be useful if you're using multiple consumer key/secret pairs.
261 263
 
262  
-### Middleware
  264
+#### Middleware
263 265
 
264 266
 The Faraday middleware stack is fully configurable and is exposed as a
265 267
 `Faraday::Builder` object. You can modify the default middleware in-place:
8  lib/twitter/api.rb
@@ -1358,8 +1358,7 @@ def saved_search_destroy(*args)
1358 1358
     #
1359 1359
     # @see https://dev.twitter.com/docs/api/1.1/get/search/tweets
1360 1360
     # @see https://dev.twitter.com/docs/using-search
1361  
-    # @see https://dev.twitter.com/docs/history-rest-search-api
1362  
-    # @note As of April 1st 2010, the Search API provides an option to retrieve "popular tweets" in addition to real-time search results. In an upcoming release, this will become the default and clients that don't want to receive popular tweets in their search results will have to explicitly opt-out. See the result_type parameter below for more information.
  1361
+    # @note Please note that Twitter's search service and, by extension, the Search API is not meant to be an exhaustive source of Tweets. Not all Tweets will be indexed or made available via the search interface.
1363 1362
     # @rate_limited Yes
1364 1363
     # @authentication_required Requires user context
1365 1364
     # @raise [Twitter::Error::Unauthorized] Error raised when supplied user credentials are not valid.
@@ -1368,13 +1367,12 @@ def saved_search_destroy(*args)
1368 1367
     # @option options [String] :geocode Returns tweets by users located within a given radius of the given latitude/longitude. The location is preferentially taking from the Geotagging API, but will fall back to their Twitter profile. The parameter value is specified by "latitude,longitude,radius", where radius units must be specified as either "mi" (miles) or "km" (kilometers). Note that you cannot use the near operator via the API to geocode arbitrary locations; however you can use this geocode parameter to search near geocodes directly.
1369 1368
     # @option options [String] :lang Restricts tweets to the given language, given by an ISO 639-1 code.
1370 1369
     # @option options [String] :locale Specify the language of the query you are sending (only ja is currently effective). This is intended for language-specific clients and the default should work in the majority of cases.
1371  
-    # @option options [Integer] :page The page number (starting at 1) to return, up to a max of roughly 1500 results (based on rpp * page).
1372 1370
     # @option options [String] :result_type Specifies what type of search results you would prefer to receive. Options are "mixed", "recent", and "popular". The current default is "mixed."
1373  
-    # @option options [Integer] :rpp The number of tweets to return per page, up to a max of 100.
  1371
+    # @option options [Integer] :count The number of tweets to return per page, up to a maximum of 100.
1374 1372
     # @option options [String] :until Optional. Returns tweets generated before the given date. Date should be formatted as YYYY-MM-DD.
1375 1373
     # @option options [Integer] :since_id Returns results with an ID greater than (that is, more recent than) the specified ID. There are limits to the number of Tweets which can be accessed through the API. If the limit of Tweets has occured since the since_id, the since_id will be forced to the oldest ID available.
1376 1374
     # @option options [Integer] :max_id Returns results with an ID less than (that is, older than) or equal to the specified ID.
1377  
-    # @option options [Boolean, String, Integer] :with_twitter_user_id When set to either true, t or 1, the from_user_id and to_user_id values in the response will map to "official" user IDs which will match those returned by the REST API.
  1375
+    # @option options [Boolean, String, Integer] :include_entities Specifies that each tweet should include an 'entities' node including metadata about the tweet such as: user_mentions, urls, and hashtags.
1378 1376
     # @return [Twitter::SearchResults] Return tweets that match a specified query with search metadata
1379 1377
     # @example Returns tweets related to twitter
1380 1378
     #   Twitter.search('twitter')
5  lib/twitter/base.rb
@@ -8,10 +8,7 @@ class Base
8 8
 
9 9
     # Define methods that retrieve the value from an initialized instance variable Hash, using the attribute as a key
10 10
     #
11  
-    # @overload self.attr_reader(attr)
12  
-    #   @param attr [Symbol]
13  
-    # @overload self.attr_reader(attrs)
14  
-    #   @param attrs [Array<Symbol>]
  11
+    # @param attrs [Array, Set, Symbol]
15 12
     def self.attr_reader(*attrs)
16 13
       attrs.each do |attribute|
17 14
         class_eval do
3  lib/twitter/basic_user.rb
@@ -4,5 +4,8 @@ module Twitter
4 4
   class BasicUser < Twitter::Identity
5 5
     attr_reader :following, :screen_name
6 6
     alias following? following
  7
+    alias handle screen_name
  8
+    alias username screen_name
  9
+    alias user_name screen_name
7 10
   end
8 11
 end
20  lib/twitter/core_ext/enumerable.rb
... ...
@@ -1,11 +1,23 @@
1 1
 module Enumerable
2 2
 
3 3
   def threaded_map
4  
-    threads = []
5  
-    each do |object|
6  
-      threads << Thread.new{yield object}
  4
+    abort_on_exception do
  5
+      threads = []
  6
+      each do |object|
  7
+        threads << Thread.new { yield object }
  8
+      end
  9
+      threads.map(&:value)
7 10
     end
8  
-    threads.map(&:value)
  11
+  end
  12
+
  13
+  private
  14
+
  15
+  def abort_on_exception
  16
+    initial_abort_on_exception = Thread.abort_on_exception
  17
+    Thread.abort_on_exception ||= true
  18
+    value = yield
  19
+    Thread.abort_on_exception = initial_abort_on_exception
  20
+    value
9 21
   end
10 22
 
11 23
 end
4  lib/twitter/geo/point.rb
@@ -6,13 +6,13 @@ class Point < Twitter::Geo
6 6
 
7 7
       # @return [Integer]
8 8
       def latitude
9  
-        self.coordinates[0]
  9
+        coordinates[0]
10 10
       end
11 11
       alias lat latitude
12 12
 
13 13
       # @return [Integer]
14 14
       def longitude
15  
-        self.coordinates[1]
  15
+        coordinates[1]
16 16
       end
17 17
       alias long longitude
18 18
       alias lng longitude
2  lib/twitter/request/multipart_with_file.rb
@@ -6,8 +6,8 @@ class MultipartWithFile < Faraday::Middleware
6 6
       CONTENT_TYPE = 'Content-Type'.freeze
7 7
       class << self
8 8
         attr_accessor :mime_type
  9
+        mime_type = 'multipart/form-data'.freeze
9 10
       end
10  
-      self.mime_type = 'multipart/form-data'.freeze
11 11
 
12 12
       def call(env)
13 13
         if env[:body].is_a?(Hash)
10  lib/twitter/tweet.rb
@@ -22,6 +22,7 @@ class Tweet < Twitter::Identity
22 22
     alias favorited? favorited
23 23
     alias favourited favorited
24 24
     alias favourited? favorited
  25
+    alias favouriters favoriters
25 26
     alias retweeted? retweeted
26 27
     alias truncated? truncated
27 28
 
@@ -31,7 +32,9 @@ def favoriters_count
31 32
       favoriters_count.to_i if favoriters_count
32 33
     end
33 34
     alias favorite_count favoriters_count
  35
+    alias favorites_count favoriters_count
34 36
     alias favourite_count favoriters_count
  37
+    alias favourites_count favoriters_count
35 38
     alias favouriters_count favoriters_count
36 39
 
37 40
     # @return [String]
@@ -42,7 +45,12 @@ def from_user
42 45
     # @return [String]
43 46
     # @note May be > 140 characters.
44 47
     def full_text
45  
-      retweeted_status && retweeted_status.user ? "RT @#{retweeted_status.user.screen_name}: #{retweeted_status.text}" : text
  48
+      if retweeted_status
  49
+        prefix = text[/\A(RT @[a-z0-9_]{1,20}: )/i, 1]
  50
+        [prefix, retweeted_status.text].compact.join
  51
+      else
  52
+        text
  53
+      end
46 54
     end
47 55
 
48 56
     # @return [Twitter::Geo]
2  lib/twitter/user.rb
@@ -22,8 +22,10 @@ class User < Twitter::BasicUser
22 22
     alias default_profile_image? default_profile_image
23 23
     alias follow_request_sent? follow_request_sent
24 24
     alias favorite_count favourites_count
  25
+    alias favoriters_count favourites_count
25 26
     alias favorites_count favourites_count
26 27
     alias favourite_count favourites_count
  28
+    alias favouriters_count favourites_count
27 29
     alias follower_count followers_count
28 30
     alias friend_count friends_count
29 31
     alias geo_enabled? geo_enabled
2  lib/twitter/version.rb
@@ -2,7 +2,7 @@ module Twitter
2 2
   class Version
3 3
     MAJOR = 4 unless defined? Twitter::MAJOR
4 4
     MINOR = 1 unless defined? Twitter::MINOR
5  
-    PATCH = 0 unless defined? Twitter::PATCH
  5
+    PATCH = 2 unless defined? Twitter::PATCH
6 6
     PRE = nil unless defined? Twitter::PRE
7 7
 
8 8
     class << self
2  spec/fixtures/status.json
... ...
@@ -1 +1 @@
1  
-{"place":{"country_code":"US","place_type":"neighborhood","url":"http:\/\/api.twitter.com\/1\/geo\/id\/41bcb736f84a799e.json","country":"The United States of America","attributes":{},"full_name":"Mission Bay, San Francisco","name":"Mission Bay","id":"41bcb736f84a799e","bounding_box":{"type":"Polygon","coordinates":[[[-122.40618084,37.76405301],[-122.38151184,37.76405301],[-122.38151184,37.78199199],[-122.40618084,37.78199199]]]}},"retweet_count":null,"geo":null,"retweeted":false,"in_reply_to_status_id":null,"source":"web","truncated":false,"in_reply_to_status_id_str":null,"created_at":"Thu Sep 30 01:43:44 +0000 2010","in_reply_to_user_id":3191321,"favorited":false,"in_reply_to_user_id_str":"3191321","user":{"contributors_enabled":false,"time_zone":"Pacific Time (US & Canada)","description":"Adventures in hunger and foolishness.","geo_enabled":true,"profile_sidebar_fill_color":"DDEEF6","followers_count":898,"notifications":false,"verified":false,"profile_use_background_image":true,"profile_sidebar_border_color":"C0DEED","follow_request_sent":false,"url":null,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/162641967\/we_concept_bg2.png","lang":"en","created_at":"Mon Jul 16 12:59:01 +0000 2007","profile_background_color":"000000","location":"San Francisco","profile_background_tile":false,"protected":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/323331048\/me_normal.jpg","listed_count":28,"friends_count":88,"profile_text_color":"333333","name":"Erik Michaels-Ober","statuses_count":2968,"following":false,"screen_name":"sferik","id":7505382,"id_str":"7505382","show_all_inline_media":true,"utc_offset":-28800,"favourites_count":727,"profile_link_color":"0084B4"},"contributors":null,"coordinates":null,"in_reply_to_screen_name":"noradio","id":25938088801,"id_str":"25938088801","text":"@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!"}
  1
+{"created_at":"Wed Apr 06 19:13:37 +0000 2011","id":55709764298092545,"id_str":"55709764298092545","text":"The problem with your code is that it's doing exactly what you told it to do.","source":"\u003ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter for iPhone\u003c\/a\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":7505382,"id_str":"7505382","name":"Erik Michaels-Ober","screen_name":"sferik","location":"San Francisco","description":"Write code. Not too much. Mostly Ruby.","url":"https:\/\/github.com\/sferik","entities":{"url":{"urls":[{"url":"https:\/\/github.com\/sferik","expanded_url":null,"indices":[0,25]}]},"description":{"urls":[]}},"protected":false,"followers_count":2479,"friends_count":200,"listed_count":132,"created_at":"Mon Jul 16 12:59:01 +0000 2007","favourites_count":4421,"utc_offset":-28800,"time_zone":"Pacific Time (US & Canada)","geo_enabled":true,"verified":false,"statuses_count":8730,"lang":"en","contributors_enabled":false,"is_translator":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/677717672\/bb0b3653dcf0644e344823e0a2eb3382.png","profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/677717672\/bb0b3653dcf0644e344823e0a2eb3382.png","profile_background_tile":false,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1759857427\/image1326743606_normal.png","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1759857427\/image1326743606_normal.png","profile_banner_url":"https:\/\/si0.twimg.com\/profile_banners\/7505382\/1349499693","profile_link_color":"0084B4","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"default_profile":false,"default_profile_image":false,"following":false,"follow_request_sent":false,"notifications":false},"geo":{"type":"Point","coordinates":[37.78349999,-122.39362884]},"coordinates":{"type":"Point","coordinates":[-122.39362884,37.78349999]},"place":{"id":"5c92ab5379de3839","url":"https:\/\/api.twitter.com\/1.1\/geo\/id\/5c92ab5379de3839.json","place_type":"neighborhood","name":"South Beach","full_name":"South Beach, San Francisco","country_code":"US","country":"United States","bounding_box":{"type":"Polygon","coordinates":[[[-122.403482,37.777529],[-122.387436,37.777529],[-122.387436,37.794486],[-122.403482,37.794486]]]},"attributes":{}},"contributors":null,"retweet_count":316,"entities":{"hashtags":[],"urls":[],"user_mentions":[]},"favorited":false,"retweeted":false}
20  spec/twitter/api/statuses_spec.rb
@@ -51,7 +51,7 @@
51 51
       tweets = @client.favorite(25938088801)
52 52
       expect(tweets).to be_an Array
53 53
       expect(tweets.first).to be_a Twitter::Tweet
54  
-      expect(tweets.first.text).to eq "@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!"
  54
+      expect(tweets.first.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
55 55
     end
56 56
   end
57 57
 
@@ -67,7 +67,7 @@
67 67
       tweets = @client.unfavorite(25938088801)
68 68
       expect(tweets).to be_an Array
69 69
       expect(tweets.first).to be_a Twitter::Tweet
70  
-      expect(tweets.first.text).to eq "@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!"
  70
+      expect(tweets.first.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
71 71
     end
72 72
   end
73 73
 
@@ -288,7 +288,7 @@
288 288
     it "returns a Tweet" do
289 289
       tweet = @client.status(25938088801)
290 290
       expect(tweet).to be_a Twitter::Tweet
291  
-      expect(tweet.text).to eq "@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!"
  291
+      expect(tweet.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
292 292
     end
293 293
   end
294 294
 
@@ -304,7 +304,7 @@
304 304
       tweets = @client.statuses(25938088801)
305 305
       expect(tweets).to be_an Array
306 306
       expect(tweets.first).to be_a Twitter::Tweet
307  
-      expect(tweets.first.text).to eq "@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!"
  307
+      expect(tweets.first.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
308 308
     end
309 309
   end
310 310
 
@@ -351,7 +351,7 @@
351 351
       tweets = @client.status_destroy(25938088801)
352 352
       expect(tweets).to be_an Array
353 353
       expect(tweets.first).to be_a Twitter::Tweet
354  
-      expect(tweets.first.text).to eq "@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!"
  354
+      expect(tweets.first.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
355 355
     end
356 356
   end
357 357
 
@@ -375,16 +375,16 @@
375 375
 
376 376
   describe "#tweet" do
377 377
     before do
378  
-      stub_post("/1.1/statuses/update.json").with(:body => {:status => "@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!"}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
  378
+      stub_post("/1.1/statuses/update.json").with(:body => {:status => "The problem with your code is that it's doing exactly what you told it to do."}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
379 379
     end
380 380
     it "requests the correct resource" do
381  
-      @client.update("@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!")
382  
-      expect(a_post("/1.1/statuses/update.json").with(:body => {:status => "@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!"})).to have_been_made
  381
+      @client.update("The problem with your code is that it's doing exactly what you told it to do.")
  382
+      expect(a_post("/1.1/statuses/update.json").with(:body => {:status => "The problem with your code is that it's doing exactly what you told it to do."})).to have_been_made
383 383
     end
384 384
     it "returns a Tweet" do
385  
-      tweet = @client.update("@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!")
  385
+      tweet = @client.update("The problem with your code is that it's doing exactly what you told it to do.")
386 386
       expect(tweet).to be_a Twitter::Tweet
387  
-      expect(tweet.text).to eq "@noradio working on implementing #NewTwitter API methods in the twitter gem. Twurl is making it easy. Thank you!"
  387
+      expect(tweet.text).to eq "The problem with your code is that it's doing exactly what you told it to do."
388 388
     end
389 389
   end
390 390
 
2  spec/twitter/client_spec.rb
@@ -53,7 +53,7 @@
53 53
         end
54 54
       end
55 55
 
56  
-      context "after initilization" do
  56
+      context "after initialization" do
57 57
         it "overrides the module configuration after initialization" do
58 58
           client = Twitter::Client.new
59 59
           client.configure do |config|
2  spec/twitter/tweet_spec.rb
@@ -81,7 +81,7 @@
81 81
       expect(tweet.full_text).to eq "BOOSH"
82 82
     end
83 83
     it "returns the full text of a retweeted Tweet" do
84  
-      tweet = Twitter::Tweet.new(:id => 28669546014, :retweeted_status => {:id => 28561922516, :text => 'BOOSH', :user => {:id => 7505382, :screen_name => 'sferik'}})
  84
+      tweet = Twitter::Tweet.new(:id => 28669546014, :text => 'RT @sferik: BOOSH', :retweeted_status => {:id => 28561922516, :text => 'BOOSH'})
85 85
       expect(tweet.full_text).to be_a String
86 86
       expect(tweet.full_text).to eq "RT @sferik: BOOSH"
87 87
     end

No commit comments for this range

Something went wrong with that request. Please try again.