twitter 4.8.1 → 5.0.0.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/CHANGELOG.md +30 -0
- data/LICENSE.md +1 -1
- data/README.md +386 -266
- data/lib/twitter.rb +4 -39
- data/lib/twitter/arguments.rb +11 -0
- data/lib/twitter/base.rb +89 -68
- data/lib/twitter/client.rb +69 -110
- data/lib/twitter/configuration.rb +7 -3
- data/lib/twitter/creatable.rb +2 -4
- data/lib/twitter/cursor.rb +50 -42
- data/lib/twitter/direct_message.rb +2 -11
- data/lib/twitter/entity/uri.rb +13 -0
- data/lib/twitter/enumerable.rb +15 -0
- data/lib/twitter/error.rb +55 -7
- data/lib/twitter/error/already_favorited.rb +1 -1
- data/lib/twitter/error/already_posted.rb +10 -0
- data/lib/twitter/error/already_retweeted.rb +1 -1
- data/lib/twitter/error/bad_gateway.rb +2 -3
- data/lib/twitter/error/bad_request.rb +2 -2
- data/lib/twitter/error/forbidden.rb +2 -2
- data/lib/twitter/error/gateway_timeout.rb +2 -3
- data/lib/twitter/error/internal_server_error.rb +2 -3
- data/lib/twitter/error/not_acceptable.rb +2 -2
- data/lib/twitter/error/not_found.rb +2 -2
- data/lib/twitter/error/service_unavailable.rb +2 -3
- data/lib/twitter/error/too_many_requests.rb +2 -2
- data/lib/twitter/error/unauthorized.rb +2 -2
- data/lib/twitter/error/unprocessable_entity.rb +2 -2
- data/lib/twitter/factory.rb +2 -8
- data/lib/twitter/geo_factory.rb +2 -2
- data/lib/twitter/geo_results.rb +36 -0
- data/lib/twitter/identity.rb +0 -22
- data/lib/twitter/list.rb +18 -4
- data/lib/twitter/media/photo.rb +3 -3
- data/lib/twitter/media_factory.rb +2 -2
- data/lib/twitter/null_object.rb +24 -0
- data/lib/twitter/oembed.rb +3 -2
- data/lib/twitter/place.rb +15 -9
- data/lib/twitter/profile_banner.rb +5 -3
- data/lib/twitter/rate_limit.rb +1 -17
- data/lib/twitter/relationship.rb +2 -10
- data/lib/twitter/rest/api/direct_messages.rb +135 -0
- data/lib/twitter/rest/api/favorites.rb +120 -0
- data/lib/twitter/rest/api/friends_and_followers.rb +290 -0
- data/lib/twitter/rest/api/help.rb +58 -0
- data/lib/twitter/rest/api/lists.rb +491 -0
- data/lib/twitter/rest/api/oauth.rb +45 -0
- data/lib/twitter/rest/api/places_and_geo.rb +104 -0
- data/lib/twitter/rest/api/saved_searches.rb +91 -0
- data/lib/twitter/rest/api/search.rb +37 -0
- data/lib/twitter/rest/api/spam_reporting.rb +29 -0
- data/lib/twitter/rest/api/suggested_users.rb +51 -0
- data/lib/twitter/rest/api/timelines.rb +202 -0
- data/lib/twitter/rest/api/trends.rb +58 -0
- data/lib/twitter/rest/api/tweets.rb +293 -0
- data/lib/twitter/rest/api/undocumented.rb +52 -0
- data/lib/twitter/rest/api/users.rb +383 -0
- data/lib/twitter/rest/api/utils.rb +219 -0
- data/lib/twitter/rest/client.rb +193 -0
- data/lib/twitter/rest/request/multipart_with_file.rb +36 -0
- data/lib/twitter/rest/response/parse_json.rb +27 -0
- data/lib/twitter/{response → rest/response}/raise_error.rb +8 -11
- data/lib/twitter/search_results.rb +33 -21
- data/lib/twitter/settings.rb +1 -6
- data/lib/twitter/size.rb +1 -1
- data/lib/twitter/streaming/client.rb +77 -0
- data/lib/twitter/streaming/connection.rb +22 -0
- data/lib/twitter/streaming/response.rb +30 -0
- data/lib/twitter/suggestion.rb +4 -2
- data/lib/twitter/token.rb +8 -0
- data/lib/twitter/trend.rb +2 -1
- data/lib/twitter/trend_results.rb +59 -0
- data/lib/twitter/tweet.rb +41 -85
- data/lib/twitter/user.rb +51 -41
- data/lib/twitter/version.rb +4 -4
- data/spec/fixtures/already_posted.json +1 -0
- data/spec/fixtures/ids_list.json +1 -1
- data/spec/fixtures/ids_list2.json +1 -1
- data/spec/fixtures/search.json +1 -1
- data/spec/fixtures/search_malformed.json +1 -1
- data/spec/fixtures/track_streaming.json +3 -0
- data/spec/helper.rb +8 -13
- data/spec/twitter/base_spec.rb +25 -99
- data/spec/twitter/configuration_spec.rb +1 -1
- data/spec/twitter/cursor_spec.rb +13 -31
- data/spec/twitter/direct_message_spec.rb +41 -8
- data/spec/twitter/entity/uri_spec.rb +74 -0
- data/spec/twitter/error_spec.rb +59 -11
- data/spec/twitter/geo/point_spec.rb +1 -1
- data/spec/twitter/geo_factory_spec.rb +3 -3
- data/spec/twitter/geo_results_spec.rb +35 -0
- data/spec/twitter/identifiable_spec.rb +0 -21
- data/spec/twitter/list_spec.rb +51 -8
- data/spec/twitter/media/photo_spec.rb +118 -3
- data/spec/twitter/media_factory_spec.rb +2 -2
- data/spec/twitter/null_object_spec.rb +26 -0
- data/spec/twitter/oembed_spec.rb +69 -45
- data/spec/twitter/place_spec.rb +68 -12
- data/spec/twitter/profile_banner_spec.rb +1 -1
- data/spec/twitter/rate_limit_spec.rb +12 -12
- data/spec/twitter/relationship_spec.rb +31 -9
- data/spec/twitter/{api → rest/api}/direct_messages_spec.rb +22 -9
- data/spec/twitter/{api → rest/api}/favorites_spec.rb +80 -7
- data/spec/twitter/{api → rest/api}/friends_and_followers_spec.rb +104 -65
- data/spec/twitter/{api → rest/api}/geo_spec.rb +10 -10
- data/spec/twitter/{api → rest/api}/help_spec.rb +6 -6
- data/spec/twitter/{api → rest/api}/lists_spec.rb +77 -56
- data/spec/twitter/{api → rest/api}/oauth_spec.rb +6 -6
- data/spec/twitter/{api → rest/api}/saved_searches_spec.rb +7 -7
- data/spec/twitter/{api → rest/api}/search_spec.rb +8 -9
- data/spec/twitter/{api → rest/api}/spam_reporting_spec.rb +3 -3
- data/spec/twitter/{api → rest/api}/suggested_users_spec.rb +5 -5
- data/spec/twitter/{api → rest/api}/timelines_spec.rb +9 -9
- data/spec/twitter/{api → rest/api}/trends_spec.rb +6 -6
- data/spec/twitter/rest/api/tweets_spec.rb +503 -0
- data/spec/twitter/{api → rest/api}/undocumented_spec.rb +19 -45
- data/spec/twitter/{api → rest/api}/users_spec.rb +60 -35
- data/spec/twitter/rest/client_spec.rb +193 -0
- data/spec/twitter/saved_search_spec.rb +11 -0
- data/spec/twitter/search_results_spec.rb +29 -42
- data/spec/twitter/settings_spec.rb +17 -6
- data/spec/twitter/streaming/client_spec.rb +75 -0
- data/spec/twitter/token_spec.rb +16 -0
- data/spec/twitter/trend_results_spec.rb +89 -0
- data/spec/twitter/trend_spec.rb +23 -0
- data/spec/twitter/tweet_spec.rb +122 -115
- data/spec/twitter/user_spec.rb +136 -77
- data/spec/twitter_spec.rb +0 -119
- data/twitter.gemspec +8 -5
- metadata +148 -141
- metadata.gz.sig +0 -0
- data/lib/twitter/action/favorite.rb +0 -19
- data/lib/twitter/action/follow.rb +0 -30
- data/lib/twitter/action/list_member_added.rb +0 -39
- data/lib/twitter/action/mention.rb +0 -46
- data/lib/twitter/action/reply.rb +0 -27
- data/lib/twitter/action/retweet.rb +0 -27
- data/lib/twitter/action/tweet.rb +0 -20
- data/lib/twitter/action_factory.rb +0 -22
- data/lib/twitter/api/arguments.rb +0 -13
- data/lib/twitter/api/direct_messages.rb +0 -148
- data/lib/twitter/api/favorites.rb +0 -126
- data/lib/twitter/api/friends_and_followers.rb +0 -334
- data/lib/twitter/api/help.rb +0 -64
- data/lib/twitter/api/lists.rb +0 -618
- data/lib/twitter/api/oauth.rb +0 -44
- data/lib/twitter/api/places_and_geo.rb +0 -121
- data/lib/twitter/api/saved_searches.rb +0 -99
- data/lib/twitter/api/search.rb +0 -37
- data/lib/twitter/api/spam_reporting.rb +0 -30
- data/lib/twitter/api/suggested_users.rb +0 -55
- data/lib/twitter/api/timelines.rb +0 -214
- data/lib/twitter/api/trends.rb +0 -63
- data/lib/twitter/api/tweets.rb +0 -304
- data/lib/twitter/api/undocumented.rb +0 -97
- data/lib/twitter/api/users.rb +0 -439
- data/lib/twitter/api/utils.rb +0 -187
- data/lib/twitter/configurable.rb +0 -96
- data/lib/twitter/default.rb +0 -102
- data/lib/twitter/entity/url.rb +0 -9
- data/lib/twitter/error/client_error.rb +0 -35
- data/lib/twitter/error/decode_error.rb +0 -9
- data/lib/twitter/error/identity_map_key_error.rb +0 -9
- data/lib/twitter/error/server_error.rb +0 -28
- data/lib/twitter/exceptable.rb +0 -36
- data/lib/twitter/identity_map.rb +0 -22
- data/lib/twitter/request/multipart_with_file.rb +0 -34
- data/lib/twitter/response/parse_json.rb +0 -25
- data/spec/fixtures/about_me.json +0 -1
- data/spec/fixtures/activity_summary.json +0 -1
- data/spec/fixtures/bad_gateway.json +0 -1
- data/spec/fixtures/bad_request.json +0 -1
- data/spec/fixtures/by_friends.json +0 -1
- data/spec/fixtures/end_session.json +0 -1
- data/spec/fixtures/forbidden.json +0 -1
- data/spec/fixtures/internal_server_error.json +0 -1
- data/spec/fixtures/not_acceptable.json +0 -1
- data/spec/fixtures/phoenix_search.phoenix +0 -1
- data/spec/fixtures/resolve.json +0 -1
- data/spec/fixtures/service_unavailable.json +0 -1
- data/spec/fixtures/totals.json +0 -1
- data/spec/fixtures/trends.json +0 -1
- data/spec/fixtures/unauthorized.json +0 -1
- data/spec/fixtures/video_facets.json +0 -1
- data/spec/twitter/action/favorite_spec.rb +0 -29
- data/spec/twitter/action/follow_spec.rb +0 -29
- data/spec/twitter/action/list_member_added_spec.rb +0 -41
- data/spec/twitter/action/mention_spec.rb +0 -52
- data/spec/twitter/action/reply_spec.rb +0 -41
- data/spec/twitter/action/retweet_spec.rb +0 -41
- data/spec/twitter/action_factory_spec.rb +0 -35
- data/spec/twitter/action_spec.rb +0 -16
- data/spec/twitter/api/tweets_spec.rb +0 -285
- data/spec/twitter/client_spec.rb +0 -223
- data/spec/twitter/error/client_error_spec.rb +0 -23
- data/spec/twitter/error/server_error_spec.rb +0 -20
@@ -4,11 +4,11 @@ describe Twitter::MediaFactory do
|
|
4
4
|
|
5
5
|
describe ".new" do
|
6
6
|
it "generates a Photo" do
|
7
|
-
media = Twitter::MediaFactory.
|
7
|
+
media = Twitter::MediaFactory.new(:id => 1, :type => "photo")
|
8
8
|
expect(media).to be_a Twitter::Media::Photo
|
9
9
|
end
|
10
10
|
it "raises an ArgumentError when type is not specified" do
|
11
|
-
expect{Twitter::MediaFactory.
|
11
|
+
expect{Twitter::MediaFactory.new}.to raise_error ArgumentError
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Twitter::NullObject do
|
4
|
+
|
5
|
+
describe "#nil?" do
|
6
|
+
it "returns true" do
|
7
|
+
null_object = Twitter::NullObject.instance
|
8
|
+
expect(null_object.null?).to be_true
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "calling any method" do
|
13
|
+
it "returns self" do
|
14
|
+
null_object = Twitter::NullObject.instance
|
15
|
+
expect(null_object.any).to equal null_object
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "#respond_to?" do
|
20
|
+
it "returns true" do
|
21
|
+
null_object = Twitter::NullObject.instance
|
22
|
+
expect(null_object.respond_to?(:any)).to be_true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
data/spec/twitter/oembed_spec.rb
CHANGED
@@ -2,24 +2,34 @@ require 'helper'
|
|
2
2
|
|
3
3
|
describe Twitter::OEmbed do
|
4
4
|
|
5
|
-
describe "#
|
6
|
-
it "returns the
|
7
|
-
oembed = Twitter::OEmbed.new(:author_url =>
|
8
|
-
expect(oembed.
|
5
|
+
describe "#author_uri" do
|
6
|
+
it "returns a URI when the author_url is set" do
|
7
|
+
oembed = Twitter::OEmbed.new(:author_url => "https://twitter.com/sferik")
|
8
|
+
expect(oembed.author_uri).to be_a URI
|
9
|
+
expect(oembed.author_uri.to_s).to eq("https://twitter.com/sferik")
|
9
10
|
end
|
11
|
+
it "returns nil when the author_uri is not set" do
|
12
|
+
oembed = Twitter::OEmbed.new
|
13
|
+
expect(oembed.author_uri).to be_nil
|
14
|
+
end
|
15
|
+
end
|
10
16
|
|
11
|
-
|
12
|
-
|
13
|
-
|
17
|
+
describe "#author_uri?" do
|
18
|
+
it "returns true when the author_url is set" do
|
19
|
+
oembed = Twitter::OEmbed.new(:author_url => "https://twitter.com/sferik")
|
20
|
+
expect(oembed.author_uri?).to be_true
|
21
|
+
end
|
22
|
+
it "returns false when the author_uri is not set" do
|
23
|
+
oembed = Twitter::OEmbed.new
|
24
|
+
expect(oembed.author_uri?).to be_false
|
14
25
|
end
|
15
26
|
end
|
16
27
|
|
17
28
|
describe "#author_name" do
|
18
29
|
it "returns the author's name" do
|
19
|
-
oembed = Twitter::OEmbed.new(:author_name =>
|
20
|
-
expect(oembed.author_name).to eq
|
30
|
+
oembed = Twitter::OEmbed.new(:author_name => "Erik Michaels-Ober")
|
31
|
+
expect(oembed.author_name).to eq("Erik Michaels-Ober")
|
21
32
|
end
|
22
|
-
|
23
33
|
it "returns nil when not set" do
|
24
34
|
author_name = Twitter::OEmbed.new.author_name
|
25
35
|
expect(author_name).to be_nil
|
@@ -28,10 +38,9 @@ describe Twitter::OEmbed do
|
|
28
38
|
|
29
39
|
describe "#cache_age" do
|
30
40
|
it "returns the cache_age" do
|
31
|
-
oembed = Twitter::OEmbed.new(:cache_age =>
|
32
|
-
expect(oembed.cache_age).to eq
|
41
|
+
oembed = Twitter::OEmbed.new(:cache_age => "31536000000")
|
42
|
+
expect(oembed.cache_age).to eq("31536000000")
|
33
43
|
end
|
34
|
-
|
35
44
|
it "returns nil when not set" do
|
36
45
|
cache_age = Twitter::OEmbed.new.cache_age
|
37
46
|
expect(cache_age).to be_nil
|
@@ -41,14 +50,12 @@ describe Twitter::OEmbed do
|
|
41
50
|
describe "#height" do
|
42
51
|
it "returns the height" do
|
43
52
|
oembed = Twitter::OEmbed.new(:height => 200)
|
44
|
-
expect(oembed.height).to eq
|
53
|
+
expect(oembed.height).to eq(200)
|
45
54
|
end
|
46
|
-
|
47
55
|
it "returns it as an Integer" do
|
48
56
|
oembed = Twitter::OEmbed.new(:height => 200)
|
49
57
|
expect(oembed.height).to be_an Integer
|
50
58
|
end
|
51
|
-
|
52
59
|
it "returns nil when not set" do
|
53
60
|
height = Twitter::OEmbed.new.height
|
54
61
|
expect(height).to be_nil
|
@@ -57,10 +64,9 @@ describe Twitter::OEmbed do
|
|
57
64
|
|
58
65
|
describe "#html" do
|
59
66
|
it "returns the html" do
|
60
|
-
oembed = Twitter::OEmbed.new(:html =>
|
61
|
-
expect(oembed.html).to eq
|
67
|
+
oembed = Twitter::OEmbed.new(:html => "<blockquote>all my <b>witty tweet</b> stuff here</blockquote>")
|
68
|
+
expect(oembed.html).to eq("<blockquote>all my <b>witty tweet</b> stuff here</blockquote>")
|
62
69
|
end
|
63
|
-
|
64
70
|
it "returns nil when not set" do
|
65
71
|
html = Twitter::OEmbed.new.html
|
66
72
|
expect(html).to be_nil
|
@@ -69,34 +75,43 @@ describe Twitter::OEmbed do
|
|
69
75
|
|
70
76
|
describe "#provider_name" do
|
71
77
|
it "returns the provider_name" do
|
72
|
-
oembed = Twitter::OEmbed.new(:provider_name =>
|
73
|
-
expect(oembed.provider_name).to eq
|
78
|
+
oembed = Twitter::OEmbed.new(:provider_name => "Twitter")
|
79
|
+
expect(oembed.provider_name).to eq("Twitter")
|
74
80
|
end
|
75
|
-
|
76
81
|
it "returns nil when not set" do
|
77
82
|
provider_name = Twitter::OEmbed.new.provider_name
|
78
83
|
expect(provider_name).to be_nil
|
79
84
|
end
|
80
85
|
end
|
81
86
|
|
82
|
-
describe "#
|
83
|
-
it "returns the provider_url" do
|
84
|
-
oembed = Twitter::OEmbed.new(:provider_url =>
|
85
|
-
expect(oembed.
|
87
|
+
describe "#provider_uri" do
|
88
|
+
it "returns a URI when the provider_url is set" do
|
89
|
+
oembed = Twitter::OEmbed.new(:provider_url => "http://twitter.com")
|
90
|
+
expect(oembed.provider_uri).to be_a URI
|
91
|
+
expect(oembed.provider_uri.to_s).to eq("http://twitter.com")
|
92
|
+
end
|
93
|
+
it "returns nil when the provider_uri is not set" do
|
94
|
+
oembed = Twitter::OEmbed.new
|
95
|
+
expect(oembed.provider_uri).to be_nil
|
86
96
|
end
|
97
|
+
end
|
87
98
|
|
88
|
-
|
89
|
-
|
90
|
-
|
99
|
+
describe "#provider_uri?" do
|
100
|
+
it "returns true when the provider_url is set" do
|
101
|
+
oembed = Twitter::OEmbed.new(:provider_url => "https://twitter.com/sferik")
|
102
|
+
expect(oembed.provider_uri?).to be_true
|
103
|
+
end
|
104
|
+
it "returns false when the provider_uri is not set" do
|
105
|
+
oembed = Twitter::OEmbed.new
|
106
|
+
expect(oembed.provider_uri?).to be_false
|
91
107
|
end
|
92
108
|
end
|
93
109
|
|
94
110
|
describe "#type" do
|
95
111
|
it "returns the type" do
|
96
|
-
oembed = Twitter::OEmbed.new(:type =>
|
97
|
-
expect(oembed.type).to eq
|
112
|
+
oembed = Twitter::OEmbed.new(:type => "rich")
|
113
|
+
expect(oembed.type).to eq("rich")
|
98
114
|
end
|
99
|
-
|
100
115
|
it "returns nil when not set" do
|
101
116
|
type = Twitter::OEmbed.new.type
|
102
117
|
expect(type).to be_nil
|
@@ -106,41 +121,50 @@ describe Twitter::OEmbed do
|
|
106
121
|
describe "#width" do
|
107
122
|
it "returns the width" do
|
108
123
|
oembed = Twitter::OEmbed.new(:width => 550)
|
109
|
-
expect(oembed.width).to eq
|
124
|
+
expect(oembed.width).to eq(550)
|
110
125
|
end
|
111
|
-
|
112
126
|
it "returns it as an Integer" do
|
113
127
|
oembed = Twitter::OEmbed.new(:width => 550)
|
114
128
|
expect(oembed.width).to be_an Integer
|
115
129
|
end
|
116
|
-
|
117
130
|
it "returns nil when not set" do
|
118
131
|
width = Twitter::OEmbed.new.width
|
119
132
|
expect(width).to be_nil
|
120
133
|
end
|
121
134
|
end
|
122
135
|
|
123
|
-
describe "#
|
124
|
-
it "returns the url" do
|
125
|
-
oembed = Twitter::OEmbed.new(:url =>
|
126
|
-
expect(oembed.
|
136
|
+
describe "#uri" do
|
137
|
+
it "returns a URI when the url is set" do
|
138
|
+
oembed = Twitter::OEmbed.new(:url => "https://twitter.com/twitterapi/status/133640144317198338")
|
139
|
+
expect(oembed.uri).to be_a URI
|
140
|
+
expect(oembed.uri.to_s).to eq("https://twitter.com/twitterapi/status/133640144317198338")
|
141
|
+
end
|
142
|
+
it "returns nil when the url is not set" do
|
143
|
+
oembed = Twitter::OEmbed.new
|
144
|
+
expect(oembed.uri).to be_nil
|
127
145
|
end
|
146
|
+
end
|
128
147
|
|
129
|
-
|
130
|
-
|
131
|
-
|
148
|
+
describe "#uri?" do
|
149
|
+
it "returns true when the url is set" do
|
150
|
+
oembed = Twitter::OEmbed.new(:url => "https://twitter.com/twitterapi/status/133640144317198338")
|
151
|
+
expect(oembed.uri?).to be_true
|
152
|
+
end
|
153
|
+
it "returns false when the url is not set" do
|
154
|
+
oembed = Twitter::OEmbed.new
|
155
|
+
expect(oembed.uri?).to be_false
|
132
156
|
end
|
133
157
|
end
|
134
158
|
|
135
159
|
describe "#version" do
|
136
160
|
it "returns the version" do
|
137
|
-
oembed = Twitter::OEmbed.new(:version =>
|
138
|
-
expect(oembed.version).to eq
|
161
|
+
oembed = Twitter::OEmbed.new(:version => "1.0")
|
162
|
+
expect(oembed.version).to eq("1.0")
|
139
163
|
end
|
140
|
-
|
141
164
|
it "returns nil when not set" do
|
142
165
|
version = Twitter::OEmbed.new.version
|
143
166
|
expect(version).to be_nil
|
144
167
|
end
|
145
168
|
end
|
169
|
+
|
146
170
|
end
|
data/spec/twitter/place_spec.rb
CHANGED
@@ -21,24 +21,57 @@ describe Twitter::Place do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
describe "#bounding_box" do
|
24
|
-
it "returns a Twitter::
|
25
|
-
place = Twitter::Place.new(:id => "247f43d441defc03", :bounding_box => {:type =>
|
24
|
+
it "returns a Twitter::Geo when bounding_box is set" do
|
25
|
+
place = Twitter::Place.new(:id => "247f43d441defc03", :bounding_box => {:type => "Polygon", :coordinates => [[[-122.40348192, 37.77752898], [-122.387436, 37.77752898], [-122.387436, 37.79448597], [-122.40348192, 37.79448597]]]})
|
26
26
|
expect(place.bounding_box).to be_a Twitter::Geo::Polygon
|
27
27
|
end
|
28
|
-
it "returns nil when not set" do
|
28
|
+
it "returns nil when not bounding_box is not set" do
|
29
29
|
place = Twitter::Place.new(:id => "247f43d441defc03")
|
30
30
|
expect(place.bounding_box).to be_nil
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
describe "#bounding_box?" do
|
35
|
+
it "returns true when bounding_box is set" do
|
36
|
+
place = Twitter::Place.new(:id => "247f43d441defc03", :bounding_box => {:type => "Polygon", :coordinates => [[[-122.40348192, 37.77752898], [-122.387436, 37.77752898], [-122.387436, 37.79448597], [-122.40348192, 37.79448597]]]})
|
37
|
+
expect(place.bounding_box?).to be_true
|
38
|
+
end
|
39
|
+
it "returns false when bounding_box is not set" do
|
40
|
+
place = Twitter::Place.new(:id => "247f43d441defc03")
|
41
|
+
expect(place.bounding_box?).to be_false
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "#contained_within" do
|
46
|
+
it "returns a Twitter::Place when contained_within is set" do
|
47
|
+
place = Twitter::Place.new(:id => "247f43d441defc03", :contained_within => {:id => "247f43d441defc04"})
|
48
|
+
expect(place.contained_within).to be_a Twitter::Place
|
49
|
+
end
|
50
|
+
it "returns nil when not contained_within is not set" do
|
51
|
+
place = Twitter::Place.new(:id => "247f43d441defc03")
|
52
|
+
expect(place.contained_within).to be_nil
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#contained_within?" do
|
57
|
+
it "returns true when contained_within is set" do
|
58
|
+
place = Twitter::Place.new(:id => "247f43d441defc03", :contained_within => {:id => "247f43d441defc04"})
|
59
|
+
expect(place.contained?).to be_true
|
60
|
+
end
|
61
|
+
it "returns false when contained_within is not set" do
|
62
|
+
place = Twitter::Place.new(:id => "247f43d441defc03")
|
63
|
+
expect(place.contained?).to be_false
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
34
67
|
describe "#country_code" do
|
35
68
|
it "returns a country code when set with country_code" do
|
36
|
-
place = Twitter::Place.new(:id => "247f43d441defc03", :country_code =>
|
37
|
-
expect(place.country_code).to eq
|
69
|
+
place = Twitter::Place.new(:id => "247f43d441defc03", :country_code => "US")
|
70
|
+
expect(place.country_code).to eq("US")
|
38
71
|
end
|
39
72
|
it "returns a country code when set with countryCode" do
|
40
|
-
place = Twitter::Place.new(:id => "247f43d441defc03", :countryCode =>
|
41
|
-
expect(place.country_code).to eq
|
73
|
+
place = Twitter::Place.new(:id => "247f43d441defc03", :countryCode => "US")
|
74
|
+
expect(place.country_code).to eq("US")
|
42
75
|
end
|
43
76
|
it "returns nil when not set" do
|
44
77
|
place = Twitter::Place.new(:id => "247f43d441defc03")
|
@@ -49,7 +82,7 @@ describe Twitter::Place do
|
|
49
82
|
describe "#parent_id" do
|
50
83
|
it "returns a parent ID when set with parentid" do
|
51
84
|
place = Twitter::Place.new(:id => "247f43d441defc03", :parentid => 1)
|
52
|
-
expect(place.parent_id).to eq
|
85
|
+
expect(place.parent_id).to eq(1)
|
53
86
|
end
|
54
87
|
it "returns nil when not set" do
|
55
88
|
place = Twitter::Place.new(:id => "247f43d441defc03")
|
@@ -59,12 +92,12 @@ describe Twitter::Place do
|
|
59
92
|
|
60
93
|
describe "#place_type" do
|
61
94
|
it "returns a place type when set with place_type" do
|
62
|
-
place = Twitter::Place.new(:id => "247f43d441defc03", :place_type =>
|
63
|
-
expect(place.place_type).to eq
|
95
|
+
place = Twitter::Place.new(:id => "247f43d441defc03", :place_type => "city")
|
96
|
+
expect(place.place_type).to eq("city")
|
64
97
|
end
|
65
98
|
it "returns a place type when set with placeType[name]" do
|
66
|
-
place = Twitter::Place.new(:id => "247f43d441defc03", :placeType => {:name =>
|
67
|
-
expect(place.place_type).to eq
|
99
|
+
place = Twitter::Place.new(:id => "247f43d441defc03", :placeType => {:name => "Town"})
|
100
|
+
expect(place.place_type).to eq("Town")
|
68
101
|
end
|
69
102
|
it "returns nil when not set" do
|
70
103
|
place = Twitter::Place.new(:id => "247f43d441defc03")
|
@@ -72,4 +105,27 @@ describe Twitter::Place do
|
|
72
105
|
end
|
73
106
|
end
|
74
107
|
|
108
|
+
describe "#uri" do
|
109
|
+
it "returns a URI when the url is set" do
|
110
|
+
place = Twitter::Place.new(:id => "247f43d441defc03", :url => "https://api.twitter.com/1.1/geo/id/247f43d441defc03.json")
|
111
|
+
expect(place.uri).to be_a URI
|
112
|
+
expect(place.uri.to_s).to eq("https://api.twitter.com/1.1/geo/id/247f43d441defc03.json")
|
113
|
+
end
|
114
|
+
it "returns nil when the url is not set" do
|
115
|
+
place = Twitter::Place.new(:id => "247f43d441defc03")
|
116
|
+
expect(place.uri).to be_nil
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe "#uri?" do
|
121
|
+
it "returns true when the url is set" do
|
122
|
+
place = Twitter::Place.new(:id => "247f43d441defc03", :url => "https://api.twitter.com/1.1/geo/id/247f43d441defc03.json")
|
123
|
+
expect(place.uri).to be_true
|
124
|
+
end
|
125
|
+
it "returns false when the url is not set" do
|
126
|
+
place = Twitter::Place.new(:id => "247f43d441defc03")
|
127
|
+
expect(place.uri).to be_false
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
75
131
|
end
|
@@ -4,7 +4,7 @@ describe Twitter::ProfileBanner do
|
|
4
4
|
|
5
5
|
describe "#sizes" do
|
6
6
|
it "returns a hash of Sizes when sizes is set" do
|
7
|
-
sizes = Twitter::ProfileBanner.new(:sizes => {:small => {:h => 226, :w => 340, :resize =>
|
7
|
+
sizes = Twitter::ProfileBanner.new(:sizes => {:small => {:h => 226, :w => 340, :resize => "fit"}, :large => {:h => 466, :w => 700, :resize => "fit"}, :medium => {:h => 399, :w => 600, :resize => "fit"}, :thumb => {:h => 150, :w => 150, :resize => "crop"}}).sizes
|
8
8
|
expect(sizes).to be_a Hash
|
9
9
|
expect(sizes[:small]).to be_a Twitter::Size
|
10
10
|
end
|
@@ -4,9 +4,9 @@ describe Twitter::RateLimit do
|
|
4
4
|
|
5
5
|
describe "#limit" do
|
6
6
|
it "returns an Integer when x-rate-limit-limit header is set" do
|
7
|
-
rate_limit = Twitter::RateLimit.new(
|
7
|
+
rate_limit = Twitter::RateLimit.new("x-rate-limit-limit" => "150")
|
8
8
|
expect(rate_limit.limit).to be_an Integer
|
9
|
-
expect(rate_limit.limit).to eq
|
9
|
+
expect(rate_limit.limit).to eq(150)
|
10
10
|
end
|
11
11
|
it "returns nil when x-rate-limit-limit header is not set" do
|
12
12
|
rate_limit = Twitter::RateLimit.new
|
@@ -16,9 +16,9 @@ describe Twitter::RateLimit do
|
|
16
16
|
|
17
17
|
describe "#remaining" do
|
18
18
|
it "returns an Integer when x-rate-limit-remaining header is set" do
|
19
|
-
rate_limit = Twitter::RateLimit.new(
|
19
|
+
rate_limit = Twitter::RateLimit.new("x-rate-limit-remaining" => "149")
|
20
20
|
expect(rate_limit.remaining).to be_an Integer
|
21
|
-
expect(rate_limit.remaining).to eq
|
21
|
+
expect(rate_limit.remaining).to eq(149)
|
22
22
|
end
|
23
23
|
it "returns nil when x-rate-limit-remaining header is not set" do
|
24
24
|
rate_limit = Twitter::RateLimit.new
|
@@ -28,9 +28,9 @@ describe Twitter::RateLimit do
|
|
28
28
|
|
29
29
|
describe "#reset_at" do
|
30
30
|
it "returns a Time when x-rate-limit-reset header is set" do
|
31
|
-
rate_limit = Twitter::RateLimit.new(
|
31
|
+
rate_limit = Twitter::RateLimit.new("x-rate-limit-reset" => "1339019097")
|
32
32
|
expect(rate_limit.reset_at).to be_a Time
|
33
|
-
expect(rate_limit.reset_at).to eq
|
33
|
+
expect(rate_limit.reset_at).to eq(Time.at(1339019097))
|
34
34
|
end
|
35
35
|
it "returns nil when x-rate-limit-reset header is not set" do
|
36
36
|
rate_limit = Twitter::RateLimit.new
|
@@ -46,9 +46,9 @@ describe Twitter::RateLimit do
|
|
46
46
|
Timecop.return
|
47
47
|
end
|
48
48
|
it "returns an Integer when x-rate-limit-reset header is set" do
|
49
|
-
rate_limit = Twitter::RateLimit.new(
|
49
|
+
rate_limit = Twitter::RateLimit.new("x-rate-limit-reset" => "1339019097")
|
50
50
|
expect(rate_limit.reset_in).to be_an Integer
|
51
|
-
expect(rate_limit.reset_in).to eq
|
51
|
+
expect(rate_limit.reset_in).to eq(15777)
|
52
52
|
end
|
53
53
|
it "returns nil when x-rate-limit-reset header is not set" do
|
54
54
|
rate_limit = Twitter::RateLimit.new
|
@@ -64,12 +64,12 @@ describe Twitter::RateLimit do
|
|
64
64
|
Timecop.return
|
65
65
|
end
|
66
66
|
it "updates a rate limit" do
|
67
|
-
rate_limit = Twitter::RateLimit.new(
|
67
|
+
rate_limit = Twitter::RateLimit.new("x-rate-limit-reset" => "1339019097")
|
68
68
|
expect(rate_limit.reset_in).to be_an Integer
|
69
|
-
expect(rate_limit.reset_in).to eq
|
70
|
-
rate_limit.update({
|
69
|
+
expect(rate_limit.reset_in).to eq(15777)
|
70
|
+
rate_limit.update({"x-rate-limit-reset" => "1339019098"})
|
71
71
|
expect(rate_limit.reset_in).to be_an Integer
|
72
|
-
expect(rate_limit.reset_in).to eq
|
72
|
+
expect(rate_limit.reset_in).to eq(15778)
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
@@ -4,23 +4,45 @@ describe Twitter::Relationship do
|
|
4
4
|
|
5
5
|
describe "#source" do
|
6
6
|
it "returns a User when source is set" do
|
7
|
-
|
8
|
-
expect(source).to be_a Twitter::SourceUser
|
7
|
+
relationship = Twitter::Relationship.new(:relationship => {:source => {:id => 7505382}})
|
8
|
+
expect(relationship.source).to be_a Twitter::SourceUser
|
9
9
|
end
|
10
10
|
it "returns nil when source is not set" do
|
11
|
-
|
12
|
-
expect(source).to be_nil
|
11
|
+
relationship = Twitter::Relationship.new(:relationship => {})
|
12
|
+
expect(relationship.source).to be_nil
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#source?" do
|
17
|
+
it "returns true when source is set" do
|
18
|
+
relationship = Twitter::Relationship.new(:relationship => {:source => {:id => 7505382}})
|
19
|
+
expect(relationship.source?).to be_true
|
20
|
+
end
|
21
|
+
it "returns false when source is not set" do
|
22
|
+
relationship = Twitter::Relationship.new(:relationship => {})
|
23
|
+
expect(relationship.source?).to be_false
|
13
24
|
end
|
14
25
|
end
|
15
26
|
|
16
27
|
describe "#target" do
|
17
28
|
it "returns a User when target is set" do
|
18
|
-
|
19
|
-
expect(target).to be_a Twitter::TargetUser
|
29
|
+
relationship = Twitter::Relationship.new(:relationship => {:target => {:id => 7505382}})
|
30
|
+
expect(relationship.target).to be_a Twitter::TargetUser
|
20
31
|
end
|
21
32
|
it "returns nil when target is not set" do
|
22
|
-
|
23
|
-
expect(target).to be_nil
|
33
|
+
relationship = Twitter::Relationship.new(:relationship => {})
|
34
|
+
expect(relationship.target).to be_nil
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "#target?" do
|
39
|
+
it "returns true when target is set" do
|
40
|
+
relationship = Twitter::Relationship.new(:relationship => {:target => {:id => 7505382}})
|
41
|
+
expect(relationship.target?).to be_true
|
42
|
+
end
|
43
|
+
it "returns false when target is not set" do
|
44
|
+
relationship = Twitter::Relationship.new(:relationship => {})
|
45
|
+
expect(relationship.target?).to be_false
|
24
46
|
end
|
25
47
|
end
|
26
48
|
|
@@ -28,7 +50,7 @@ describe Twitter::Relationship do
|
|
28
50
|
it "updates a relationship" do
|
29
51
|
relationship = Twitter::Relationship.new(:relationship => {:target => {:id => 7505382}})
|
30
52
|
relationship.update(:relationship => {:target => {:id => 14100886}})
|
31
|
-
expect(relationship.target.id).to eq
|
53
|
+
expect(relationship.target.id).to eq(14100886)
|
32
54
|
end
|
33
55
|
end
|
34
56
|
|