twitter 5.1.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. data/.yardopts +2 -0
  2. data/CHANGELOG.md +14 -1
  3. data/CONTRIBUTING.md +2 -2
  4. data/README.md +30 -20
  5. data/Rakefile +26 -5
  6. data/lib/twitter/arguments.rb +0 -1
  7. data/lib/twitter/base.rb +13 -16
  8. data/lib/twitter/basic_user.rb +3 -3
  9. data/lib/twitter/client.rb +7 -8
  10. data/lib/twitter/configuration.rb +5 -5
  11. data/lib/twitter/core_ext/enumerable.rb +0 -2
  12. data/lib/twitter/core_ext/kernel.rb +0 -2
  13. data/lib/twitter/creatable.rb +0 -1
  14. data/lib/twitter/cursor.rb +7 -10
  15. data/lib/twitter/direct_message.rb +1 -1
  16. data/lib/twitter/entity/uri.rb +2 -2
  17. data/lib/twitter/enumerable.rb +1 -2
  18. data/lib/twitter/error/already_favorited.rb +1 -1
  19. data/lib/twitter/error/already_posted.rb +1 -1
  20. data/lib/twitter/error/already_retweeted.rb +1 -1
  21. data/lib/twitter/error/too_many_requests.rb +2 -2
  22. data/lib/twitter/error.rb +4 -6
  23. data/lib/twitter/factory.rb +2 -6
  24. data/lib/twitter/geo/point.rb +3 -5
  25. data/lib/twitter/geo.rb +1 -1
  26. data/lib/twitter/geo_factory.rb +1 -5
  27. data/lib/twitter/geo_results.rb +5 -8
  28. data/lib/twitter/identity.rb +1 -2
  29. data/lib/twitter/list.rb +4 -5
  30. data/lib/twitter/media/photo.rb +1 -2
  31. data/lib/twitter/media_factory.rb +1 -5
  32. data/lib/twitter/null_object.rb +4 -6
  33. data/lib/twitter/oembed.rb +1 -1
  34. data/lib/twitter/place.rb +17 -6
  35. data/lib/twitter/profile_banner.rb +1 -3
  36. data/lib/twitter/rate_limit.rb +1 -3
  37. data/lib/twitter/relationship.rb +1 -2
  38. data/lib/twitter/rest/api/direct_messages.rb +13 -14
  39. data/lib/twitter/rest/api/favorites.rb +10 -11
  40. data/lib/twitter/rest/api/friends_and_followers.rb +36 -36
  41. data/lib/twitter/rest/api/help.rb +8 -9
  42. data/lib/twitter/rest/api/lists.rb +62 -63
  43. data/lib/twitter/rest/api/oauth.rb +3 -4
  44. data/lib/twitter/rest/api/places_and_geo.rb +9 -10
  45. data/lib/twitter/rest/api/saved_searches.rb +5 -6
  46. data/lib/twitter/rest/api/search.rb +2 -3
  47. data/lib/twitter/rest/api/spam_reporting.rb +1 -2
  48. data/lib/twitter/rest/api/suggested_users.rb +4 -5
  49. data/lib/twitter/rest/api/timelines.rb +17 -18
  50. data/lib/twitter/rest/api/trends.rb +10 -11
  51. data/lib/twitter/rest/api/tweets.rb +15 -16
  52. data/lib/twitter/rest/api/undocumented.rb +6 -7
  53. data/lib/twitter/rest/api/users.rb +51 -52
  54. data/lib/twitter/rest/api/utils.rb +23 -30
  55. data/lib/twitter/rest/client.rb +8 -9
  56. data/lib/twitter/rest/request/multipart_with_file.rb +0 -1
  57. data/lib/twitter/rest/response/parse_error_json.rb +0 -2
  58. data/lib/twitter/rest/response/parse_json.rb +0 -2
  59. data/lib/twitter/rest/response/raise_error.rb +1 -3
  60. data/lib/twitter/search_results.rb +12 -15
  61. data/lib/twitter/settings.rb +2 -2
  62. data/lib/twitter/size.rb +2 -2
  63. data/lib/twitter/source_user.rb +1 -1
  64. data/lib/twitter/streaming/client.rb +71 -18
  65. data/lib/twitter/streaming/connection.rb +1 -3
  66. data/lib/twitter/streaming/deleted_tweet.rb +8 -0
  67. data/lib/twitter/streaming/event.rb +8 -8
  68. data/lib/twitter/streaming/friend_list.rb +2 -9
  69. data/lib/twitter/streaming/message_parser.rb +13 -7
  70. data/lib/twitter/streaming/response.rb +0 -2
  71. data/lib/twitter/streaming/stall_warning.rb +7 -0
  72. data/lib/twitter/suggestion.rb +0 -1
  73. data/lib/twitter/token.rb +2 -3
  74. data/lib/twitter/trend_results.rb +5 -8
  75. data/lib/twitter/tweet.rb +16 -24
  76. data/lib/twitter/user.rb +30 -32
  77. data/lib/twitter/version.rb +1 -4
  78. data/spec/fixtures/track_streaming_user.json +2 -1
  79. data/spec/helper.rb +6 -2
  80. data/spec/twitter/base_spec.rb +9 -9
  81. data/spec/twitter/basic_user_spec.rb +6 -6
  82. data/spec/twitter/configuration_spec.rb +4 -4
  83. data/spec/twitter/cursor_spec.rb +27 -27
  84. data/spec/twitter/direct_message_spec.rb +36 -36
  85. data/spec/twitter/entity/uri_spec.rb +27 -27
  86. data/spec/twitter/error_spec.rb +21 -21
  87. data/spec/twitter/geo/point_spec.rb +9 -9
  88. data/spec/twitter/geo/polygon_spec.rb +5 -5
  89. data/spec/twitter/geo_factory_spec.rb +7 -7
  90. data/spec/twitter/geo_results_spec.rb +11 -11
  91. data/spec/twitter/geo_spec.rb +5 -5
  92. data/spec/twitter/identifiable_spec.rb +9 -9
  93. data/spec/twitter/list_spec.rb +38 -38
  94. data/spec/twitter/media/photo_spec.rb +54 -54
  95. data/spec/twitter/media_factory_spec.rb +5 -5
  96. data/spec/twitter/null_object_spec.rb +6 -6
  97. data/spec/twitter/oembed_spec.rb +65 -65
  98. data/spec/twitter/place_spec.rb +89 -60
  99. data/spec/twitter/profile_banner_spec.rb +3 -3
  100. data/spec/twitter/rate_limit_spec.rb +18 -18
  101. data/spec/twitter/relationship_spec.rb +16 -16
  102. data/spec/twitter/rest/api/direct_messages_spec.rb +61 -61
  103. data/spec/twitter/rest/api/favorites_spec.rb +93 -93
  104. data/spec/twitter/rest/api/friends_and_followers_spec.rb +349 -349
  105. data/spec/twitter/rest/api/geo_spec.rb +33 -33
  106. data/spec/twitter/rest/api/help_spec.rb +24 -24
  107. data/spec/twitter/rest/api/lists_spec.rb +487 -487
  108. data/spec/twitter/rest/api/oauth_spec.rb +30 -30
  109. data/spec/twitter/rest/api/saved_searches_spec.rb +40 -40
  110. data/spec/twitter/rest/api/search_spec.rb +16 -16
  111. data/spec/twitter/rest/api/spam_reporting_spec.rb +9 -9
  112. data/spec/twitter/rest/api/suggested_users_spec.rb +23 -23
  113. data/spec/twitter/rest/api/timelines_spec.rb +58 -58
  114. data/spec/twitter/rest/api/trends_spec.rb +26 -26
  115. data/spec/twitter/rest/api/tweets_spec.rb +284 -284
  116. data/spec/twitter/rest/api/undocumented_spec.rb +51 -51
  117. data/spec/twitter/rest/api/users_spec.rb +360 -360
  118. data/spec/twitter/rest/client_spec.rb +99 -103
  119. data/spec/twitter/saved_search_spec.rb +16 -16
  120. data/spec/twitter/search_results_spec.rb +44 -44
  121. data/spec/twitter/settings_spec.rb +8 -8
  122. data/spec/twitter/size_spec.rb +5 -5
  123. data/spec/twitter/source_user_spec.rb +6 -6
  124. data/spec/twitter/streaming/client_spec.rb +53 -49
  125. data/spec/twitter/streaming/deleted_tweet_spec.rb +23 -0
  126. data/spec/twitter/streaming/event_spec.rb +20 -22
  127. data/spec/twitter/streaming/friend_list_spec.rb +11 -0
  128. data/spec/twitter/streaming/message_parser_spec.rb +54 -0
  129. data/spec/twitter/suggestion_spec.rb +11 -11
  130. data/spec/twitter/target_user_spec.rb +6 -6
  131. data/spec/twitter/token_spec.rb +4 -4
  132. data/spec/twitter/trend_results_spec.rb +30 -30
  133. data/spec/twitter/trend_spec.rb +20 -20
  134. data/spec/twitter/tweet_spec.rb +170 -173
  135. data/spec/twitter/user_spec.rb +179 -179
  136. data/twitter.gemspec +2 -2
  137. data.tar.gz.sig +0 -0
  138. metadata +21 -4
  139. metadata.gz.sig +2 -3
@@ -3,65 +3,65 @@ require 'helper'
3
3
  describe Twitter::REST::API::PlacesAndGeo do
4
4
 
5
5
  before do
6
- @client = Twitter::REST::Client.new(:consumer_key => "CK", :consumer_secret => "CS", :access_token => "AT", :access_token_secret => "AS")
6
+ @client = Twitter::REST::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :access_token => 'AT', :access_token_secret => 'AS')
7
7
  end
8
8
 
9
- describe "#place" do
9
+ describe '#place' do
10
10
  before do
11
- stub_get("/1.1/geo/id/247f43d441defc03.json").to_return(:body => fixture("place.json"), :headers => {:content_type => "application/json; charset=utf-8"})
11
+ stub_get('/1.1/geo/id/247f43d441defc03.json').to_return(:body => fixture('place.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
12
12
  end
13
- it "requests the correct resource" do
14
- @client.place("247f43d441defc03")
15
- expect(a_get("/1.1/geo/id/247f43d441defc03.json")).to have_been_made
13
+ it 'requests the correct resource' do
14
+ @client.place('247f43d441defc03')
15
+ expect(a_get('/1.1/geo/id/247f43d441defc03.json')).to have_been_made
16
16
  end
17
- it "returns a place" do
18
- place = @client.place("247f43d441defc03")
19
- expect(place.name).to eq("Twitter HQ")
17
+ it 'returns a place' do
18
+ place = @client.place('247f43d441defc03')
19
+ expect(place.name).to eq('Twitter HQ')
20
20
  end
21
21
  end
22
22
 
23
- describe "#reverse_geocode" do
23
+ describe '#reverse_geocode' do
24
24
  before do
25
- stub_get("/1.1/geo/reverse_geocode.json").with(:query => {:lat => "37.7821120598956", :long => "-122.400612831116"}).to_return(:body => fixture("places.json"), :headers => {:content_type => "application/json; charset=utf-8"})
25
+ stub_get('/1.1/geo/reverse_geocode.json').with(:query => {:lat => '37.7821120598956', :long => '-122.400612831116'}).to_return(:body => fixture('places.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
26
26
  end
27
- it "requests the correct resource" do
28
- @client.reverse_geocode(:lat => "37.7821120598956", :long => "-122.400612831116")
29
- expect(a_get("/1.1/geo/reverse_geocode.json").with(:query => {:lat => "37.7821120598956", :long => "-122.400612831116"})).to have_been_made
27
+ it 'requests the correct resource' do
28
+ @client.reverse_geocode(:lat => '37.7821120598956', :long => '-122.400612831116')
29
+ expect(a_get('/1.1/geo/reverse_geocode.json').with(:query => {:lat => '37.7821120598956', :long => '-122.400612831116'})).to have_been_made
30
30
  end
31
- it "returns places" do
32
- places = @client.reverse_geocode(:lat => "37.7821120598956", :long => "-122.400612831116")
31
+ it 'returns places' do
32
+ places = @client.reverse_geocode(:lat => '37.7821120598956', :long => '-122.400612831116')
33
33
  expect(places).to be_a Twitter::GeoResults
34
- expect(places.first.name).to eq("Bernal Heights")
34
+ expect(places.first.name).to eq('Bernal Heights')
35
35
  end
36
36
  end
37
37
 
38
- describe "#geo_search" do
38
+ describe '#geo_search' do
39
39
  before do
40
- stub_get("/1.1/geo/search.json").with(:query => {:ip => "74.125.19.104"}).to_return(:body => fixture("places.json"), :headers => {:content_type => "application/json; charset=utf-8"})
40
+ stub_get('/1.1/geo/search.json').with(:query => {:ip => '74.125.19.104'}).to_return(:body => fixture('places.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
41
41
  end
42
- it "requests the correct resource" do
43
- @client.geo_search(:ip => "74.125.19.104")
44
- expect(a_get("/1.1/geo/search.json").with(:query => {:ip => "74.125.19.104"})).to have_been_made
42
+ it 'requests the correct resource' do
43
+ @client.geo_search(:ip => '74.125.19.104')
44
+ expect(a_get('/1.1/geo/search.json').with(:query => {:ip => '74.125.19.104'})).to have_been_made
45
45
  end
46
- it "returns nearby places" do
47
- places = @client.geo_search(:ip => "74.125.19.104")
46
+ it 'returns nearby places' do
47
+ places = @client.geo_search(:ip => '74.125.19.104')
48
48
  expect(places).to be_a Twitter::GeoResults
49
- expect(places.first.name).to eq("Bernal Heights")
49
+ expect(places.first.name).to eq('Bernal Heights')
50
50
  end
51
51
  end
52
52
 
53
- describe "#similar_places" do
53
+ describe '#similar_places' do
54
54
  before do
55
- stub_get("/1.1/geo/similar_places.json").with(:query => {:lat => "37.7821120598956", :long => "-122.400612831116", :name => "Twitter HQ"}).to_return(:body => fixture("places.json"), :headers => {:content_type => "application/json; charset=utf-8"})
55
+ stub_get('/1.1/geo/similar_places.json').with(:query => {:lat => '37.7821120598956', :long => '-122.400612831116', :name => 'Twitter HQ'}).to_return(:body => fixture('places.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
56
56
  end
57
- it "requests the correct resource" do
58
- @client.similar_places(:lat => "37.7821120598956", :long => "-122.400612831116", :name => "Twitter HQ")
59
- expect(a_get("/1.1/geo/similar_places.json").with(:query => {:lat => "37.7821120598956", :long => "-122.400612831116", :name => "Twitter HQ"})).to have_been_made
57
+ it 'requests the correct resource' do
58
+ @client.similar_places(:lat => '37.7821120598956', :long => '-122.400612831116', :name => 'Twitter HQ')
59
+ expect(a_get('/1.1/geo/similar_places.json').with(:query => {:lat => '37.7821120598956', :long => '-122.400612831116', :name => 'Twitter HQ'})).to have_been_made
60
60
  end
61
- it "returns similar places" do
62
- places = @client.similar_places(:lat => "37.7821120598956", :long => "-122.400612831116", :name => "Twitter HQ")
61
+ it 'returns similar places' do
62
+ places = @client.similar_places(:lat => '37.7821120598956', :long => '-122.400612831116', :name => 'Twitter HQ')
63
63
  expect(places).to be_a Twitter::GeoResults
64
- expect(places.first.name).to eq("Bernal Heights")
64
+ expect(places.first.name).to eq('Bernal Heights')
65
65
  end
66
66
  end
67
67
 
@@ -3,65 +3,65 @@ require 'helper'
3
3
  describe Twitter::REST::API::Help do
4
4
 
5
5
  before do
6
- @client = Twitter::REST::Client.new(:consumer_key => "CK", :consumer_secret => "CS", :access_token => "AT", :access_token_secret => "AS")
6
+ @client = Twitter::REST::Client.new(:consumer_key => 'CK', :consumer_secret => 'CS', :access_token => 'AT', :access_token_secret => 'AS')
7
7
  end
8
8
 
9
- describe "#configuration" do
9
+ describe '#configuration' do
10
10
  before do
11
- stub_get("/1.1/help/configuration.json").to_return(:body => fixture("configuration.json"), :headers => {:content_type => "application/json; charset=utf-8"})
11
+ stub_get('/1.1/help/configuration.json').to_return(:body => fixture('configuration.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
12
12
  end
13
- it "requests the correct resource" do
13
+ it 'requests the correct resource' do
14
14
  @client.configuration
15
- expect(a_get("/1.1/help/configuration.json")).to have_been_made
15
+ expect(a_get('/1.1/help/configuration.json')).to have_been_made
16
16
  end
17
- it "returns Twitter's current configuration" do
17
+ it 'returns the Twitter configuration' do
18
18
  configuration = @client.configuration
19
19
  expect(configuration).to be_a Twitter::Configuration
20
20
  expect(configuration.characters_reserved_per_media).to eq(20)
21
21
  end
22
22
  end
23
23
 
24
- describe "#languages" do
24
+ describe '#languages' do
25
25
  before do
26
- stub_get("/1.1/help/languages.json").to_return(:body => fixture("languages.json"), :headers => {:content_type => "application/json; charset=utf-8"})
26
+ stub_get('/1.1/help/languages.json').to_return(:body => fixture('languages.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
27
27
  end
28
- it "requests the correct resource" do
28
+ it 'requests the correct resource' do
29
29
  @client.languages
30
- expect(a_get("/1.1/help/languages.json")).to have_been_made
30
+ expect(a_get('/1.1/help/languages.json')).to have_been_made
31
31
  end
32
- it "returns the list of languages supported by Twitter" do
32
+ it 'returns the list of languages supported by Twitter' do
33
33
  languages = @client.languages
34
34
  expect(languages).to be_an Array
35
35
  expect(languages.first).to be_a Twitter::Language
36
- expect(languages.first.name).to eq("Portuguese")
36
+ expect(languages.first.name).to eq('Portuguese')
37
37
  end
38
38
  end
39
39
 
40
- describe "#privacy" do
40
+ describe '#privacy' do
41
41
  before do
42
- stub_get("/1.1/help/privacy.json").to_return(:body => fixture("privacy.json"), :headers => {:content_type => "application/json; charset=utf-8"})
42
+ stub_get('/1.1/help/privacy.json').to_return(:body => fixture('privacy.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
43
43
  end
44
- it "requests the correct resource" do
44
+ it 'requests the correct resource' do
45
45
  @client.privacy
46
- expect(a_get("/1.1/help/privacy.json")).to have_been_made
46
+ expect(a_get('/1.1/help/privacy.json')).to have_been_made
47
47
  end
48
- it "returns Twitter's Privacy Policy" do
48
+ it 'returns the Twitter Privacy Policy' do
49
49
  privacy = @client.privacy
50
- expect(privacy.split.first).to eq("Twitter")
50
+ expect(privacy.split.first).to eq('Twitter')
51
51
  end
52
52
  end
53
53
 
54
- describe "#tos" do
54
+ describe '#tos' do
55
55
  before do
56
- stub_get("/1.1/help/tos.json").to_return(:body => fixture("tos.json"), :headers => {:content_type => "application/json; charset=utf-8"})
56
+ stub_get('/1.1/help/tos.json').to_return(:body => fixture('tos.json'), :headers => {:content_type => 'application/json; charset=utf-8'})
57
57
  end
58
- it "requests the correct resource" do
58
+ it 'requests the correct resource' do
59
59
  @client.tos
60
- expect(a_get("/1.1/help/tos.json")).to have_been_made
60
+ expect(a_get('/1.1/help/tos.json')).to have_been_made
61
61
  end
62
- it "returns Twitter's Terms of Service" do
62
+ it 'returns the Twitter Terms of Service' do
63
63
  tos = @client.tos
64
- expect(tos.split.first).to eq("Terms")
64
+ expect(tos.split.first).to eq('Terms')
65
65
  end
66
66
  end
67
67