twitter 5.0.0 → 5.4.1
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.
- data/.yardopts +4 -0
- data/CHANGELOG.md +47 -0
- data/CONTRIBUTING.md +5 -5
- data/README.md +57 -56
- data/Rakefile +26 -5
- data/lib/twitter/arguments.rb +1 -2
- data/lib/twitter/base.rb +15 -18
- data/lib/twitter/basic_user.rb +3 -3
- data/lib/twitter/client.rb +9 -10
- data/lib/twitter/configuration.rb +5 -5
- data/lib/twitter/creatable.rb +0 -1
- data/lib/twitter/cursor.rb +9 -36
- data/lib/twitter/direct_message.rb +1 -1
- data/lib/twitter/entity/uri.rb +2 -2
- data/lib/twitter/enumerable.rb +10 -1
- data/lib/twitter/error/already_favorited.rb +1 -1
- data/lib/twitter/error/already_posted.rb +1 -1
- data/lib/twitter/error/already_retweeted.rb +1 -1
- data/lib/twitter/error/too_many_requests.rb +2 -2
- data/lib/twitter/error.rb +6 -6
- data/lib/twitter/factory.rb +2 -6
- data/lib/twitter/geo/point.rb +3 -5
- data/lib/twitter/geo.rb +1 -1
- data/lib/twitter/geo_factory.rb +1 -5
- data/lib/twitter/geo_results.rb +5 -8
- data/lib/twitter/identity.rb +1 -2
- data/lib/twitter/list.rb +10 -11
- data/lib/twitter/media/photo.rb +1 -2
- data/lib/twitter/media_factory.rb +1 -5
- data/lib/twitter/null_object.rb +4 -6
- data/lib/twitter/oembed.rb +1 -1
- data/lib/twitter/place.rb +17 -6
- data/lib/twitter/profile_banner.rb +1 -3
- data/lib/twitter/rate_limit.rb +1 -3
- data/lib/twitter/relationship.rb +1 -2
- data/lib/twitter/rest/api/direct_messages.rb +15 -15
- data/lib/twitter/rest/api/favorites.rb +15 -15
- data/lib/twitter/rest/api/friends_and_followers.rb +37 -42
- data/lib/twitter/rest/api/help.rb +8 -9
- data/lib/twitter/rest/api/lists.rb +69 -69
- data/lib/twitter/rest/api/oauth.rb +3 -4
- data/lib/twitter/rest/api/places_and_geo.rb +9 -10
- data/lib/twitter/rest/api/saved_searches.rb +8 -8
- data/lib/twitter/rest/api/search.rb +10 -2
- data/lib/twitter/rest/api/spam_reporting.rb +1 -2
- data/lib/twitter/rest/api/suggested_users.rb +4 -5
- data/lib/twitter/rest/api/timelines.rb +17 -18
- data/lib/twitter/rest/api/trends.rb +10 -11
- data/lib/twitter/rest/api/tweets.rb +31 -20
- data/lib/twitter/rest/api/undocumented.rb +6 -7
- data/lib/twitter/rest/api/users.rb +53 -54
- data/lib/twitter/rest/api/utils.rb +28 -34
- data/lib/twitter/rest/client.rb +8 -9
- data/lib/twitter/rest/request/multipart_with_file.rb +7 -5
- data/lib/twitter/rest/response/parse_error_json.rb +0 -2
- data/lib/twitter/rest/response/parse_json.rb +2 -2
- data/lib/twitter/rest/response/raise_error.rb +1 -3
- data/lib/twitter/search_results.rb +38 -56
- data/lib/twitter/settings.rb +2 -2
- data/lib/twitter/size.rb +2 -2
- data/lib/twitter/source_user.rb +1 -1
- data/lib/twitter/streaming/client.rb +69 -18
- data/lib/twitter/streaming/connection.rb +1 -3
- data/lib/twitter/streaming/deleted_tweet.rb +8 -0
- data/lib/twitter/streaming/event.rb +8 -8
- data/lib/twitter/streaming/friend_list.rb +2 -9
- data/lib/twitter/streaming/message_parser.rb +13 -3
- data/lib/twitter/streaming/response.rb +0 -2
- data/lib/twitter/streaming/stall_warning.rb +7 -0
- data/lib/twitter/suggestion.rb +0 -1
- data/lib/twitter/token.rb +2 -3
- data/lib/twitter/trend_results.rb +5 -8
- data/lib/twitter/tweet.rb +17 -18
- data/lib/twitter/user.rb +33 -35
- data/lib/twitter/utils.rb +14 -0
- data/lib/twitter/version.rb +2 -5
- data/lib/twitter.rb +1 -1
- data/spec/fixtures/forbidden.json +1 -0
- data/spec/fixtures/search.json +1 -1
- data/spec/fixtures/search2.json +1 -0
- data/spec/fixtures/track_streaming_user.json +2 -1
- data/spec/helper.rb +6 -2
- data/spec/twitter/base_spec.rb +9 -9
- data/spec/twitter/basic_user_spec.rb +6 -6
- data/spec/twitter/configuration_spec.rb +4 -4
- data/spec/twitter/cursor_spec.rb +13 -51
- data/spec/twitter/direct_message_spec.rb +36 -36
- data/spec/twitter/entity/uri_spec.rb +29 -29
- data/spec/twitter/error_spec.rb +21 -21
- data/spec/twitter/geo/point_spec.rb +9 -9
- data/spec/twitter/geo/polygon_spec.rb +5 -5
- data/spec/twitter/geo_factory_spec.rb +7 -7
- data/spec/twitter/geo_results_spec.rb +11 -11
- data/spec/twitter/geo_spec.rb +5 -5
- data/spec/twitter/identifiable_spec.rb +9 -9
- data/spec/twitter/list_spec.rb +38 -38
- data/spec/twitter/media/photo_spec.rb +58 -58
- data/spec/twitter/media_factory_spec.rb +5 -5
- data/spec/twitter/null_object_spec.rb +6 -6
- data/spec/twitter/oembed_spec.rb +68 -68
- data/spec/twitter/place_spec.rb +91 -62
- data/spec/twitter/profile_banner_spec.rb +3 -3
- data/spec/twitter/rate_limit_spec.rb +18 -18
- data/spec/twitter/relationship_spec.rb +16 -16
- data/spec/twitter/rest/api/direct_messages_spec.rb +61 -61
- data/spec/twitter/rest/api/favorites_spec.rb +93 -93
- data/spec/twitter/rest/api/friends_and_followers_spec.rb +357 -349
- data/spec/twitter/rest/api/geo_spec.rb +33 -33
- data/spec/twitter/rest/api/help_spec.rb +24 -24
- data/spec/twitter/rest/api/lists_spec.rb +487 -487
- data/spec/twitter/rest/api/oauth_spec.rb +30 -30
- data/spec/twitter/rest/api/saved_searches_spec.rb +50 -40
- data/spec/twitter/rest/api/search_spec.rb +27 -26
- data/spec/twitter/rest/api/spam_reporting_spec.rb +9 -9
- data/spec/twitter/rest/api/suggested_users_spec.rb +23 -23
- data/spec/twitter/rest/api/timelines_spec.rb +58 -58
- data/spec/twitter/rest/api/trends_spec.rb +26 -26
- data/spec/twitter/rest/api/tweets_spec.rb +304 -266
- data/spec/twitter/rest/api/undocumented_spec.rb +51 -51
- data/spec/twitter/rest/api/users_spec.rb +360 -360
- data/spec/twitter/rest/client_spec.rb +99 -103
- data/spec/twitter/saved_search_spec.rb +16 -16
- data/spec/twitter/search_results_spec.rb +14 -110
- data/spec/twitter/settings_spec.rb +8 -8
- data/spec/twitter/size_spec.rb +5 -5
- data/spec/twitter/source_user_spec.rb +6 -6
- data/spec/twitter/streaming/client_spec.rb +85 -54
- data/spec/twitter/streaming/deleted_tweet_spec.rb +23 -0
- data/spec/twitter/streaming/event_spec.rb +20 -22
- data/spec/twitter/streaming/friend_list_spec.rb +11 -0
- data/spec/twitter/streaming/message_parser_spec.rb +54 -0
- data/spec/twitter/suggestion_spec.rb +11 -11
- data/spec/twitter/target_user_spec.rb +6 -6
- data/spec/twitter/token_spec.rb +4 -4
- data/spec/twitter/trend_results_spec.rb +30 -30
- data/spec/twitter/trend_spec.rb +21 -21
- data/spec/twitter/tweet_spec.rb +178 -164
- data/spec/twitter/user_spec.rb +190 -190
- data/twitter.gemspec +6 -6
- data.tar.gz.sig +0 -0
- metadata +44 -16
- metadata.gz.sig +0 -0
- data/lib/twitter/core_ext/enumerable.rb +0 -10
- data/lib/twitter/core_ext/kernel.rb +0 -10
- data/spec/twitter_spec.rb +0 -0
|
@@ -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 =>
|
|
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
|
|
9
|
+
describe '#place' do
|
|
10
10
|
before do
|
|
11
|
-
stub_get(
|
|
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
|
|
14
|
-
@client.place(
|
|
15
|
-
expect(a_get(
|
|
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
|
|
18
|
-
place = @client.place(
|
|
19
|
-
expect(place.name).to eq(
|
|
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
|
|
23
|
+
describe '#reverse_geocode' do
|
|
24
24
|
before do
|
|
25
|
-
stub_get(
|
|
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
|
|
28
|
-
@client.reverse_geocode(:lat =>
|
|
29
|
-
expect(a_get(
|
|
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
|
|
32
|
-
places = @client.reverse_geocode(:lat =>
|
|
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(
|
|
34
|
+
expect(places.first.name).to eq('Bernal Heights')
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
describe
|
|
38
|
+
describe '#geo_search' do
|
|
39
39
|
before do
|
|
40
|
-
stub_get(
|
|
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
|
|
43
|
-
@client.geo_search(:ip =>
|
|
44
|
-
expect(a_get(
|
|
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
|
|
47
|
-
places = @client.geo_search(:ip =>
|
|
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(
|
|
49
|
+
expect(places.first.name).to eq('Bernal Heights')
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
-
describe
|
|
53
|
+
describe '#similar_places' do
|
|
54
54
|
before do
|
|
55
|
-
stub_get(
|
|
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
|
|
58
|
-
@client.similar_places(:lat =>
|
|
59
|
-
expect(a_get(
|
|
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
|
|
62
|
-
places = @client.similar_places(:lat =>
|
|
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(
|
|
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 =>
|
|
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
|
|
9
|
+
describe '#configuration' do
|
|
10
10
|
before do
|
|
11
|
-
stub_get(
|
|
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
|
|
13
|
+
it 'requests the correct resource' do
|
|
14
14
|
@client.configuration
|
|
15
|
-
expect(a_get(
|
|
15
|
+
expect(a_get('/1.1/help/configuration.json')).to have_been_made
|
|
16
16
|
end
|
|
17
|
-
it
|
|
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
|
|
24
|
+
describe '#languages' do
|
|
25
25
|
before do
|
|
26
|
-
stub_get(
|
|
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
|
|
28
|
+
it 'requests the correct resource' do
|
|
29
29
|
@client.languages
|
|
30
|
-
expect(a_get(
|
|
30
|
+
expect(a_get('/1.1/help/languages.json')).to have_been_made
|
|
31
31
|
end
|
|
32
|
-
it
|
|
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(
|
|
36
|
+
expect(languages.first.name).to eq('Portuguese')
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
-
describe
|
|
40
|
+
describe '#privacy' do
|
|
41
41
|
before do
|
|
42
|
-
stub_get(
|
|
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
|
|
44
|
+
it 'requests the correct resource' do
|
|
45
45
|
@client.privacy
|
|
46
|
-
expect(a_get(
|
|
46
|
+
expect(a_get('/1.1/help/privacy.json')).to have_been_made
|
|
47
47
|
end
|
|
48
|
-
it
|
|
48
|
+
it 'returns the Twitter Privacy Policy' do
|
|
49
49
|
privacy = @client.privacy
|
|
50
|
-
expect(privacy.split.first).to eq(
|
|
50
|
+
expect(privacy.split.first).to eq('Twitter')
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
describe
|
|
54
|
+
describe '#tos' do
|
|
55
55
|
before do
|
|
56
|
-
stub_get(
|
|
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
|
|
58
|
+
it 'requests the correct resource' do
|
|
59
59
|
@client.tos
|
|
60
|
-
expect(a_get(
|
|
60
|
+
expect(a_get('/1.1/help/tos.json')).to have_been_made
|
|
61
61
|
end
|
|
62
|
-
it
|
|
62
|
+
it 'returns the Twitter Terms of Service' do
|
|
63
63
|
tos = @client.tos
|
|
64
|
-
expect(tos.split.first).to eq(
|
|
64
|
+
expect(tos.split.first).to eq('Terms')
|
|
65
65
|
end
|
|
66
66
|
end
|
|
67
67
|
|