twitter 5.0.1 → 5.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/.yardopts +2 -0
- data/CHANGELOG.md +6 -0
- data/README.md +14 -14
- data/lib/twitter/base.rb +1 -1
- data/lib/twitter/client.rb +1 -1
- data/lib/twitter/list.rb +6 -6
- data/lib/twitter/rest/api/tweets.rb +13 -2
- data/lib/twitter/rest/api/users.rb +1 -1
- data/lib/twitter/rest/api/utils.rb +1 -1
- data/lib/twitter/tweet.rb +1 -1
- data/lib/twitter/user.rb +3 -3
- data/lib/twitter/version.rb +2 -2
- data/spec/twitter/entity/uri_spec.rb +2 -2
- data/spec/twitter/media/photo_spec.rb +4 -4
- data/spec/twitter/oembed_spec.rb +3 -3
- data/spec/twitter/place_spec.rb +1 -1
- data/spec/twitter/rest/api/tweets_spec.rb +38 -0
- data/spec/twitter/trend_spec.rb +1 -1
- data/spec/twitter/tweet_spec.rb +18 -1
- data/spec/twitter/user_spec.rb +10 -10
- metadata +87 -57
- metadata.gz.sig +0 -0
- checksums.yaml +0 -7
- checksums.yaml.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/.yardopts
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
5.1.0
|
2
|
+
-----
|
3
|
+
* [Use `Addressable::URI` everywhere](https://github.com/sferik/twitter/commit/97d7c68900c9974a1f6841f6eed2706df9030d64) ([@matthewrudy](https://twitter.com/matthewrudy))
|
4
|
+
* [Allow use of `Twitter::Place` instead of `place_id`](https://github.com/sferik/twitter/commit/c2b31dd2385fefa30a9ddccf15415a713cf5953a)
|
5
|
+
* [Allow use of `Twitter::Tweet` instead of `in_reply_to_status_id`](https://github.com/sferik/twitter/commit/6b7d6c2b637a074c348a56a51fb1e02252482fb2)
|
6
|
+
|
1
7
|
5.0.1
|
2
8
|
-----
|
3
9
|
* [Fix `buftok` delimiter handling](https://github.com/sferik/twitter/pull/484)
|
data/README.md
CHANGED
@@ -161,14 +161,14 @@ simplicity and performance.
|
|
161
161
|
<th>Notes</th>
|
162
162
|
<th colspan="2">Version 4</th>
|
163
163
|
<th colspan="2">Version 5</th>
|
164
|
-
</
|
164
|
+
</tr>
|
165
165
|
<tr>
|
166
166
|
<th></th>
|
167
167
|
<th>Code</th>
|
168
168
|
<th>HTTP GETs</th>
|
169
169
|
<th>Code</th>
|
170
170
|
<th>HTTP GETs</th>
|
171
|
-
</
|
171
|
+
</tr>
|
172
172
|
</thead>
|
173
173
|
<tbody>
|
174
174
|
<tr>
|
@@ -176,13 +176,13 @@ simplicity and performance.
|
|
176
176
|
Are you at the start of the cursor?
|
177
177
|
</td>
|
178
178
|
<td>
|
179
|
-
<pre><code
|
179
|
+
<pre><code>client.friends.first</code></pre>
|
180
180
|
</td>
|
181
181
|
<td>
|
182
182
|
<em>Θ(1)</em>
|
183
183
|
</td>
|
184
184
|
<td>
|
185
|
-
<pre><code
|
185
|
+
<pre><code>client.friends.first?</code></pre>
|
186
186
|
</td>
|
187
187
|
<td>
|
188
188
|
<em>Θ(1)</em>
|
@@ -193,13 +193,13 @@ simplicity and performance.
|
|
193
193
|
Return your most recent follower.
|
194
194
|
</td>
|
195
195
|
<td>
|
196
|
-
<pre><code
|
196
|
+
<pre><code>client.friends.users.first</code></pre>
|
197
197
|
</td>
|
198
198
|
<td>
|
199
199
|
<em>Θ(1)</em>
|
200
200
|
</td>
|
201
201
|
<td>
|
202
|
-
<pre><code
|
202
|
+
<pre><code>client.friends.first</code></pre>
|
203
203
|
</td>
|
204
204
|
<td>
|
205
205
|
<em>Θ(1)</em>
|
@@ -210,13 +210,13 @@ simplicity and performance.
|
|
210
210
|
Return an array of all your friends.
|
211
211
|
</td>
|
212
212
|
<td>
|
213
|
-
<pre><code
|
213
|
+
<pre><code>client.friends.all</code></pre>
|
214
214
|
</td>
|
215
215
|
<td>
|
216
216
|
<em>Θ(n+1)</em>
|
217
217
|
</td>
|
218
218
|
<td>
|
219
|
-
<pre><code
|
219
|
+
<pre><code>client.friends.to_a</code></pre>
|
220
220
|
</td>
|
221
221
|
<td>
|
222
222
|
<em>Θ(n)</em>
|
@@ -227,13 +227,13 @@ simplicity and performance.
|
|
227
227
|
Collect your 20 most recent friends.
|
228
228
|
</td>
|
229
229
|
<td>
|
230
|
-
<pre><code
|
230
|
+
<pre><code>client.friends.take(20)</code></pre>
|
231
231
|
</td>
|
232
232
|
<td>
|
233
233
|
<em>Θ(n+1)</em>
|
234
234
|
</td>
|
235
235
|
<td>
|
236
|
-
<pre><code
|
236
|
+
<pre><code>client.friends.take(20)</code></pre>
|
237
237
|
</td>
|
238
238
|
<td>
|
239
239
|
<em>Θ(1)</em>
|
@@ -244,7 +244,7 @@ simplicity and performance.
|
|
244
244
|
Collect your 20 most recent friends twice.
|
245
245
|
</td>
|
246
246
|
<td>
|
247
|
-
<pre><code
|
247
|
+
<pre><code>friends = client.friends
|
248
248
|
2.times.collect do
|
249
249
|
friends.take(20)
|
250
250
|
end</code></pre>
|
@@ -253,7 +253,7 @@ end</code></pre>
|
|
253
253
|
<em>Θ(2n+2)</em>
|
254
254
|
</td>
|
255
255
|
<td>
|
256
|
-
<pre><code
|
256
|
+
<pre><code>friends = client.friends
|
257
257
|
2.times.collect do
|
258
258
|
friends.take(20)
|
259
259
|
end</code></pre>
|
@@ -423,8 +423,8 @@ These methods are aliased to `#url` for users who prefer that nomenclature.
|
|
423
423
|
`Twitter::User` previously had a `#url` method, which returned the user's
|
424
424
|
website. This URI is now available via the `#website` method.
|
425
425
|
|
426
|
-
All `#uri` methods now return `URI` objects instead of strings. To convert
|
427
|
-
`URI` object to a string, call `#to_s` on it.
|
426
|
+
All `#uri` methods now return `Addressable::URI` objects instead of strings. To convert an
|
427
|
+
`Addressable::URI` object to a string, call `#to_s` on it.
|
428
428
|
|
429
429
|
## Configuration
|
430
430
|
Twitter API v1.1 requires you to authenticate via OAuth, so you'll need to
|
data/lib/twitter/base.rb
CHANGED
data/lib/twitter/client.rb
CHANGED
data/lib/twitter/list.rb
CHANGED
@@ -8,23 +8,23 @@ module Twitter
|
|
8
8
|
:mode, :name, :slug, :subscriber_count
|
9
9
|
object_attr_reader :User, :user
|
10
10
|
|
11
|
-
# @return [URI] The URI to the list members.
|
11
|
+
# @return [Addressable::URI] The URI to the list members.
|
12
12
|
def members_uri
|
13
|
-
URI.parse("https://twitter.com/#{user.screen_name}/#{slug}/members")
|
13
|
+
Addressable::URI.parse("https://twitter.com/#{user.screen_name}/#{slug}/members")
|
14
14
|
end
|
15
15
|
memoize :members_uri
|
16
16
|
alias members_url members_uri
|
17
17
|
|
18
|
-
# @return [URI] The URI to the list subscribers.
|
18
|
+
# @return [Addressable::URI] The URI to the list subscribers.
|
19
19
|
def subscribers_uri
|
20
|
-
URI.parse("https://twitter.com/#{user.screen_name}/#{slug}/subscribers")
|
20
|
+
Addressable::URI.parse("https://twitter.com/#{user.screen_name}/#{slug}/subscribers")
|
21
21
|
end
|
22
22
|
memoize :subscribers_uri
|
23
23
|
alias subscribers_url subscribers_uri
|
24
24
|
|
25
|
-
# @return [URI] The URI to the list.
|
25
|
+
# @return [Addressable::URI] The URI to the list.
|
26
26
|
def uri
|
27
|
-
URI.parse("https://twitter.com/#{user.screen_name}/#{slug}")
|
27
|
+
Addressable::URI.parse("https://twitter.com/#{user.screen_name}/#{slug}")
|
28
28
|
end
|
29
29
|
memoize :uri
|
30
30
|
alias url uri
|
@@ -110,14 +110,19 @@ module Twitter
|
|
110
110
|
# @return [Twitter::Tweet] The created Tweet.
|
111
111
|
# @param status [String] The text of your status update, up to 140 characters.
|
112
112
|
# @param options [Hash] A customizable set of options.
|
113
|
+
# @option options [Twitter::Tweet] :in_reply_to_status An existing status that the update is in reply to.
|
113
114
|
# @option options [Integer] :in_reply_to_status_id The ID of an existing status that the update is in reply to.
|
114
115
|
# @option options [Float] :lat The latitude of the location this tweet refers to. This option will be ignored unless it is inside the range -90.0 to +90.0 (North is positive) inclusive. It will also be ignored if there isn't a corresponding :long option.
|
115
116
|
# @option options [Float] :long The longitude of the location this tweet refers to. The valid ranges for longitude is -180.0 to +180.0 (East is positive) inclusive. This option will be ignored if outside that range, if it is not a number, if geo_enabled is disabled, or if there not a corresponding :lat option.
|
117
|
+
# @option options [Twitter::Place] :place A place in the world. These can be retrieved from {Twitter::REST::API::PlacesAndGeo#reverse_geocode}.
|
116
118
|
# @option options [String] :place_id A place in the world. These IDs can be retrieved from {Twitter::REST::API::PlacesAndGeo#reverse_geocode}.
|
117
119
|
# @option options [String] :display_coordinates Whether or not to put a pin on the exact coordinates a tweet has been sent from.
|
118
120
|
# @option options [Boolean, String, Integer] :trim_user Each tweet returned in a timeline will include a user object with only the author's numerical ID when set to true, 't' or 1.
|
119
121
|
def update(status, options={})
|
120
|
-
|
122
|
+
hash = options.dup
|
123
|
+
hash[:in_reply_to_status_id] = hash.delete(:in_reply_to_status).id unless hash[:in_reply_to_status].nil?
|
124
|
+
hash[:place_id] = hash.delete(:place).woeid unless hash[:place].nil?
|
125
|
+
object_from_response(Twitter::Tweet, :post, "/1.1/statuses/update.json", hash.merge(:status => status))
|
121
126
|
rescue Twitter::Error::Forbidden => error
|
122
127
|
handle_forbidden_error(Twitter::Error::AlreadyPosted, error)
|
123
128
|
end
|
@@ -184,14 +189,20 @@ module Twitter
|
|
184
189
|
# @param status [String] The text of your status update, up to 140 characters.
|
185
190
|
# @param media [File, Hash] A File object with your picture (PNG, JPEG or GIF)
|
186
191
|
# @param options [Hash] A customizable set of options.
|
192
|
+
# @option options [Boolean, String, Integer] :possibly_sensitive Set to true for content which may not be suitable for every audience.
|
193
|
+
# @option options [Twitter::Tweet] :in_reply_to_status An existing status that the update is in reply to.
|
187
194
|
# @option options [Integer] :in_reply_to_status_id The ID of an existing Tweet that the update is in reply to.
|
188
195
|
# @option options [Float] :lat The latitude of the location this tweet refers to. This option will be ignored unless it is inside the range -90.0 to +90.0 (North is positive) inclusive. It will also be ignored if there isn't a corresponding :long option.
|
189
196
|
# @option options [Float] :long The longitude of the location this tweet refers to. The valid ranges for longitude is -180.0 to +180.0 (East is positive) inclusive. This option will be ignored if outside that range, if it is not a number, if geo_enabled is disabled, or if there not a corresponding :lat option.
|
197
|
+
# @option options [Twitter::Place] :place A place in the world. These can be retrieved from {Twitter::REST::API::PlacesAndGeo#reverse_geocode}.
|
190
198
|
# @option options [String] :place_id A place in the world. These IDs can be retrieved from {Twitter::REST::API::PlacesAndGeo#reverse_geocode}.
|
191
199
|
# @option options [String] :display_coordinates Whether or not to put a pin on the exact coordinates a tweet has been sent from.
|
192
200
|
# @option options [Boolean, String, Integer] :trim_user Each tweet returned in a timeline will include a user object with only the author's numerical ID when set to true, 't' or 1.
|
193
201
|
def update_with_media(status, media, options={})
|
194
|
-
|
202
|
+
hash = options.dup
|
203
|
+
hash[:in_reply_to_status_id] = hash.delete(:in_reply_to_status).id unless hash[:in_reply_to_status].nil?
|
204
|
+
hash[:place_id] = hash.delete(:place).woeid unless hash[:place].nil?
|
205
|
+
object_from_response(Twitter::Tweet, :post, "/1.1/statuses/update_with_media.json", hash.merge('media[]' => media, 'status' => status))
|
195
206
|
rescue Twitter::Error::Forbidden => error
|
196
207
|
handle_forbidden_error(Twitter::Error::AlreadyPosted, error)
|
197
208
|
end
|
@@ -185,7 +185,7 @@ module Twitter
|
|
185
185
|
else
|
186
186
|
set_compound_key("screen_name", user, hash, prefix)
|
187
187
|
end
|
188
|
-
when URI
|
188
|
+
when URI, Addressable::URI
|
189
189
|
set_compound_key("screen_name", user.path.split("/").last, hash, prefix)
|
190
190
|
when Twitter::User
|
191
191
|
set_compound_key("user_id", user.id, hash, prefix)
|
data/lib/twitter/tweet.rb
CHANGED
@@ -79,7 +79,7 @@ module Twitter
|
|
79
79
|
|
80
80
|
# @return [String] The URL to the tweet.
|
81
81
|
def uri
|
82
|
-
URI.parse("https://twitter.com/#{user.screen_name}/status/#{id}")
|
82
|
+
Addressable::URI.parse("https://twitter.com/#{user.screen_name}/status/#{id}")
|
83
83
|
end
|
84
84
|
memoize :uri
|
85
85
|
alias url uri
|
data/lib/twitter/user.rb
CHANGED
@@ -109,14 +109,14 @@ module Twitter
|
|
109
109
|
|
110
110
|
# @return [String] The URL to the user.
|
111
111
|
def uri
|
112
|
-
URI.parse("https://twitter.com/#{screen_name}")
|
112
|
+
Addressable::URI.parse("https://twitter.com/#{screen_name}")
|
113
113
|
end
|
114
114
|
memoize :uri
|
115
115
|
alias url uri
|
116
116
|
|
117
117
|
# @return [String] The URL to the user's website.
|
118
118
|
def website
|
119
|
-
URI.parse(@attrs[:url]) if @attrs[:url]
|
119
|
+
Addressable::URI.parse(@attrs[:url]) if @attrs[:url]
|
120
120
|
end
|
121
121
|
memoize :website
|
122
122
|
|
@@ -128,7 +128,7 @@ module Twitter
|
|
128
128
|
private
|
129
129
|
|
130
130
|
def parse_encoded_uri(uri)
|
131
|
-
URI.parse(URI.encode(uri))
|
131
|
+
Addressable::URI.parse(URI.encode(uri))
|
132
132
|
end
|
133
133
|
|
134
134
|
def insecure_uri(uri)
|
data/lib/twitter/version.rb
CHANGED
@@ -29,7 +29,7 @@ describe Twitter::Entity::URI do
|
|
29
29
|
describe "#expanded_uri" do
|
30
30
|
it "returns a URI when the expanded_url is set" do
|
31
31
|
uri = Twitter::Entity::URI.new(:expanded_url => "https://github.com/sferik")
|
32
|
-
expect(uri.expanded_uri).to be_a URI
|
32
|
+
expect(uri.expanded_uri).to be_a Addressable::URI
|
33
33
|
expect(uri.expanded_uri.to_s).to eq("https://github.com/sferik")
|
34
34
|
end
|
35
35
|
it "returns nil when the expanded_url is not set" do
|
@@ -52,7 +52,7 @@ describe Twitter::Entity::URI do
|
|
52
52
|
describe "#uri" do
|
53
53
|
it "returns a URI when the url is set" do
|
54
54
|
uri = Twitter::Entity::URI.new(:url => "https://github.com/sferik")
|
55
|
-
expect(uri.uri).to be_a URI
|
55
|
+
expect(uri.uri).to be_a Addressable::URI
|
56
56
|
expect(uri.uri.to_s).to eq("https://github.com/sferik")
|
57
57
|
end
|
58
58
|
it "returns nil when the url is not set" do
|
@@ -59,7 +59,7 @@ describe Twitter::Media::Photo do
|
|
59
59
|
describe "#expanded_uri" do
|
60
60
|
it "returns a URI when the expanded_url is set" do
|
61
61
|
photo = Twitter::Media::Photo.new(:id => 1, :expanded_url => "http://pbs.twimg.com/media/BQD6MPOCEAAbCH0.png")
|
62
|
-
expect(photo.expanded_uri).to be_a URI
|
62
|
+
expect(photo.expanded_uri).to be_a Addressable::URI
|
63
63
|
expect(photo.expanded_uri.to_s).to eq("http://pbs.twimg.com/media/BQD6MPOCEAAbCH0.png")
|
64
64
|
end
|
65
65
|
it "returns nil when the expanded_url is not set" do
|
@@ -82,7 +82,7 @@ describe Twitter::Media::Photo do
|
|
82
82
|
describe "#media_uri" do
|
83
83
|
it "returns a URI when the media_url is set" do
|
84
84
|
photo = Twitter::Media::Photo.new(:id => 1, :media_url => "http://pbs.twimg.com/media/BQD6MPOCEAAbCH0.png")
|
85
|
-
expect(photo.media_uri).to be_a URI
|
85
|
+
expect(photo.media_uri).to be_a Addressable::URI
|
86
86
|
expect(photo.media_uri.to_s).to eq("http://pbs.twimg.com/media/BQD6MPOCEAAbCH0.png")
|
87
87
|
end
|
88
88
|
it "returns nil when the media_url is not set" do
|
@@ -105,7 +105,7 @@ describe Twitter::Media::Photo do
|
|
105
105
|
describe "#media_uri_https" do
|
106
106
|
it "returns a URI when the media_url_https is set" do
|
107
107
|
photo = Twitter::Media::Photo.new(:id => 1, :media_url_https => "http://pbs.twimg.com/media/BQD6MPOCEAAbCH0.png")
|
108
|
-
expect(photo.media_uri_https).to be_a URI
|
108
|
+
expect(photo.media_uri_https).to be_a Addressable::URI
|
109
109
|
expect(photo.media_uri_https.to_s).to eq("http://pbs.twimg.com/media/BQD6MPOCEAAbCH0.png")
|
110
110
|
end
|
111
111
|
it "returns nil when the media_url_https is not set" do
|
@@ -128,7 +128,7 @@ describe Twitter::Media::Photo do
|
|
128
128
|
describe "#uri" do
|
129
129
|
it "returns a URI when the url is set" do
|
130
130
|
photo = Twitter::Media::Photo.new(:id => 1, :url => "http://pbs.twimg.com/media/BQD6MPOCEAAbCH0.png")
|
131
|
-
expect(photo.uri).to be_a URI
|
131
|
+
expect(photo.uri).to be_a Addressable::URI
|
132
132
|
expect(photo.uri.to_s).to eq("http://pbs.twimg.com/media/BQD6MPOCEAAbCH0.png")
|
133
133
|
end
|
134
134
|
it "returns nil when the url is not set" do
|
data/spec/twitter/oembed_spec.rb
CHANGED
@@ -5,7 +5,7 @@ describe Twitter::OEmbed do
|
|
5
5
|
describe "#author_uri" do
|
6
6
|
it "returns a URI when the author_url is set" do
|
7
7
|
oembed = Twitter::OEmbed.new(:author_url => "https://twitter.com/sferik")
|
8
|
-
expect(oembed.author_uri).to be_a URI
|
8
|
+
expect(oembed.author_uri).to be_a Addressable::URI
|
9
9
|
expect(oembed.author_uri.to_s).to eq("https://twitter.com/sferik")
|
10
10
|
end
|
11
11
|
it "returns nil when the author_uri is not set" do
|
@@ -87,7 +87,7 @@ describe Twitter::OEmbed do
|
|
87
87
|
describe "#provider_uri" do
|
88
88
|
it "returns a URI when the provider_url is set" do
|
89
89
|
oembed = Twitter::OEmbed.new(:provider_url => "http://twitter.com")
|
90
|
-
expect(oembed.provider_uri).to be_a URI
|
90
|
+
expect(oembed.provider_uri).to be_a Addressable::URI
|
91
91
|
expect(oembed.provider_uri.to_s).to eq("http://twitter.com")
|
92
92
|
end
|
93
93
|
it "returns nil when the provider_uri is not set" do
|
@@ -136,7 +136,7 @@ describe Twitter::OEmbed do
|
|
136
136
|
describe "#uri" do
|
137
137
|
it "returns a URI when the url is set" do
|
138
138
|
oembed = Twitter::OEmbed.new(:url => "https://twitter.com/twitterapi/status/133640144317198338")
|
139
|
-
expect(oembed.uri).to be_a URI
|
139
|
+
expect(oembed.uri).to be_a Addressable::URI
|
140
140
|
expect(oembed.uri.to_s).to eq("https://twitter.com/twitterapi/status/133640144317198338")
|
141
141
|
end
|
142
142
|
it "returns nil when the url is not set" do
|
data/spec/twitter/place_spec.rb
CHANGED
@@ -108,7 +108,7 @@ describe Twitter::Place do
|
|
108
108
|
describe "#uri" do
|
109
109
|
it "returns a URI when the url is set" do
|
110
110
|
place = Twitter::Place.new(:woeid => "247f43d441defc03", :url => "https://api.twitter.com/1.1/geo/id/247f43d441defc03.json")
|
111
|
-
expect(place.uri).to be_a URI
|
111
|
+
expect(place.uri).to be_a Addressable::URI
|
112
112
|
expect(place.uri.to_s).to eq("https://api.twitter.com/1.1/geo/id/247f43d441defc03.json")
|
113
113
|
end
|
114
114
|
it "returns nil when the url is not set" do
|
@@ -226,6 +226,44 @@ describe Twitter::REST::API::Tweets do
|
|
226
226
|
expect{@client.update("The problem with your code is that it's doing exactly what you told it to do.")}.to raise_error Twitter::Error::AlreadyPosted
|
227
227
|
end
|
228
228
|
end
|
229
|
+
context "with an in-reply-to status" do
|
230
|
+
before do
|
231
|
+
@tweet = Twitter::Tweet.new(:id => 1)
|
232
|
+
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.", :in_reply_to_status_id => "1"}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
233
|
+
end
|
234
|
+
it "requests the correct resource" do
|
235
|
+
@client.update("The problem with your code is that it's doing exactly what you told it to do.", :in_reply_to_status => @tweet)
|
236
|
+
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.", :in_reply_to_status_id => "1"})).to have_been_made
|
237
|
+
end
|
238
|
+
end
|
239
|
+
context "with an in-reply-to status ID" do
|
240
|
+
before do
|
241
|
+
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.", :in_reply_to_status_id => "1"}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
242
|
+
end
|
243
|
+
it "requests the correct resource" do
|
244
|
+
@client.update("The problem with your code is that it's doing exactly what you told it to do.", :in_reply_to_status_id => 1)
|
245
|
+
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.", :in_reply_to_status_id => "1"})).to have_been_made
|
246
|
+
end
|
247
|
+
end
|
248
|
+
context "with a place" do
|
249
|
+
before do
|
250
|
+
@place = Twitter::Place.new(:woeid => "df51dec6f4ee2b2c")
|
251
|
+
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.", :place_id => "df51dec6f4ee2b2c"}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
252
|
+
end
|
253
|
+
it "requests the correct resource" do
|
254
|
+
@client.update("The problem with your code is that it's doing exactly what you told it to do.", :place => @place)
|
255
|
+
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.", :place_id => "df51dec6f4ee2b2c"})).to have_been_made
|
256
|
+
end
|
257
|
+
end
|
258
|
+
context "with a place ID" do
|
259
|
+
before do
|
260
|
+
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.", :place_id => "df51dec6f4ee2b2c"}).to_return(:body => fixture("status.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
261
|
+
end
|
262
|
+
it "requests the correct resource" do
|
263
|
+
@client.update("The problem with your code is that it's doing exactly what you told it to do.", :place_id => "df51dec6f4ee2b2c")
|
264
|
+
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.", :place_id => "df51dec6f4ee2b2c"})).to have_been_made
|
265
|
+
end
|
266
|
+
end
|
229
267
|
end
|
230
268
|
|
231
269
|
describe "#retweet" do
|
data/spec/twitter/trend_spec.rb
CHANGED
@@ -28,7 +28,7 @@ describe Twitter::Trend do
|
|
28
28
|
describe "#uri" do
|
29
29
|
it "returns a URI when the url is set" do
|
30
30
|
trend = Twitter::Trend.new(:url => "http://twitter.com/search/?q=%23sevenwordsaftersex")
|
31
|
-
expect(trend.uri).to be_a URI
|
31
|
+
expect(trend.uri).to be_a Addressable::URI
|
32
32
|
expect(trend.uri.to_s).to eq("http://twitter.com/search/?q=%23sevenwordsaftersex")
|
33
33
|
end
|
34
34
|
it "returns nil when the url is not set" do
|
data/spec/twitter/tweet_spec.rb
CHANGED
@@ -310,12 +310,29 @@ describe Twitter::Tweet do
|
|
310
310
|
Twitter::Tweet.new(:id => 28669546014).urls
|
311
311
|
expect($stderr.string).to match(/To get urls, you must pass `:include_entities => true` when requesting the Twitter::Tweet\./)
|
312
312
|
end
|
313
|
+
|
314
|
+
it "can handle strange urls" do
|
315
|
+
urls_array = [
|
316
|
+
{
|
317
|
+
:url => "http://with_underscore.example.com/t.co",
|
318
|
+
:expanded_url => "http://with_underscore.example.com/expanded",
|
319
|
+
:display_url => "with_underscore.example.com/expanded…",
|
320
|
+
:indices => [10, 33],
|
321
|
+
}
|
322
|
+
]
|
323
|
+
tweet = Twitter::Tweet.new(:id => 28669546014, :entities => {:urls => urls_array})
|
324
|
+
uri = tweet.uris.first
|
325
|
+
expect{ uri.url }.to_not raise_error
|
326
|
+
expect{ uri.expanded_url }.to_not raise_error
|
327
|
+
expect{ uri.display_url }.to_not raise_error
|
328
|
+
end
|
329
|
+
|
313
330
|
end
|
314
331
|
|
315
332
|
describe "#uri" do
|
316
333
|
it "returns the URI to the tweet" do
|
317
334
|
tweet = Twitter::Tweet.new(:id => 28669546014, :user => {:id => 7505382, :screen_name => "sferik"})
|
318
|
-
expect(tweet.uri).to be_a URI
|
335
|
+
expect(tweet.uri).to be_a Addressable::URI
|
319
336
|
expect(tweet.uri.to_s).to eq("https://twitter.com/sferik/status/28669546014")
|
320
337
|
end
|
321
338
|
end
|
data/spec/twitter/user_spec.rb
CHANGED
@@ -68,11 +68,11 @@ describe Twitter::User do
|
|
68
68
|
describe "#profile_banner_uri" do
|
69
69
|
it "accepts utf8 urls" do
|
70
70
|
user = Twitter::User.new(:id => 7505382, :profile_banner_url => "https://si0.twimg.com/profile_banners/7505382/1348266581©_normal.png")
|
71
|
-
expect(user.profile_banner_uri).to be_a URI
|
71
|
+
expect(user.profile_banner_uri).to be_a Addressable::URI
|
72
72
|
end
|
73
73
|
it "returns a URI when profile_banner_url is set" do
|
74
74
|
user = Twitter::User.new(:id => 7505382, :profile_banner_url => "https://si0.twimg.com/profile_banners/7505382/1348266581")
|
75
|
-
expect(user.profile_banner_uri).to be_a URI
|
75
|
+
expect(user.profile_banner_uri).to be_a Addressable::URI
|
76
76
|
end
|
77
77
|
it "returns nil when profile_banner_uri is not set" do
|
78
78
|
user = Twitter::User.new(:id => 7505382)
|
@@ -117,11 +117,11 @@ describe Twitter::User do
|
|
117
117
|
describe "#profile_banner_uri_https" do
|
118
118
|
it "accepts utf8 urls" do
|
119
119
|
user = Twitter::User.new(:id => 7505382, :profile_banner_url => "https://si0.twimg.com/profile_banners/7505382/1348266581©_normal.png")
|
120
|
-
expect(user.profile_banner_uri_https).to be_a URI
|
120
|
+
expect(user.profile_banner_uri_https).to be_a Addressable::URI
|
121
121
|
end
|
122
122
|
it "returns a URI when profile_banner_url is set" do
|
123
123
|
user = Twitter::User.new(:id => 7505382, :profile_banner_url => "https://si0.twimg.com/profile_banners/7505382/1348266581")
|
124
|
-
expect(user.profile_banner_uri_https).to be_a URI
|
124
|
+
expect(user.profile_banner_uri_https).to be_a Addressable::URI
|
125
125
|
end
|
126
126
|
it "returns nil when created_at is not set" do
|
127
127
|
user = Twitter::User.new(:id => 7505382)
|
@@ -177,11 +177,11 @@ describe Twitter::User do
|
|
177
177
|
describe "#profile_image_uri" do
|
178
178
|
it "accepts utf8 urls" do
|
179
179
|
user = Twitter::User.new(:id => 7505382, :profile_image_url_https => "https://si0.twimg.com/profile_images/7505382/1348266581©_normal.png")
|
180
|
-
expect(user.profile_image_uri).to be_a URI
|
180
|
+
expect(user.profile_image_uri).to be_a Addressable::URI
|
181
181
|
end
|
182
182
|
it "returns a URI when profile_image_url_https is set" do
|
183
183
|
user = Twitter::User.new(:id => 7505382, :profile_image_url_https => "https://a0.twimg.com/profile_images/1759857427/image1326743606_normal.png")
|
184
|
-
expect(user.profile_image_uri).to be_a URI
|
184
|
+
expect(user.profile_image_uri).to be_a Addressable::URI
|
185
185
|
end
|
186
186
|
it "returns nil when created_at is not set" do
|
187
187
|
user = Twitter::User.new(:id => 7505382)
|
@@ -222,11 +222,11 @@ describe Twitter::User do
|
|
222
222
|
describe "#profile_image_uri_https" do
|
223
223
|
it "accepts utf8 urls" do
|
224
224
|
user = Twitter::User.new(:id => 7505382, :profile_image_url_https => "https://si0.twimg.com/profile_images/7505382/1348266581©_normal.png")
|
225
|
-
expect(user.profile_image_uri_https).to be_a URI
|
225
|
+
expect(user.profile_image_uri_https).to be_a Addressable::URI
|
226
226
|
end
|
227
227
|
it "returns a URI when profile_image_url_https is set" do
|
228
228
|
user = Twitter::User.new(:id => 7505382, :profile_image_url_https => "https://a0.twimg.com/profile_images/1759857427/image1326743606_normal.png")
|
229
|
-
expect(user.profile_image_uri_https).to be_a URI
|
229
|
+
expect(user.profile_image_uri_https).to be_a Addressable::URI
|
230
230
|
end
|
231
231
|
it "returns nil when created_at is not set" do
|
232
232
|
user = Twitter::User.new(:id => 7505382)
|
@@ -305,7 +305,7 @@ describe Twitter::User do
|
|
305
305
|
describe "#uri" do
|
306
306
|
it "returns the URI to the user" do
|
307
307
|
user = Twitter::User.new(:id => 7505382, :screen_name => "sferik")
|
308
|
-
expect(user.uri).to be_a URI
|
308
|
+
expect(user.uri).to be_a Addressable::URI
|
309
309
|
expect(user.uri.to_s).to eq("https://twitter.com/sferik")
|
310
310
|
end
|
311
311
|
end
|
@@ -313,7 +313,7 @@ describe Twitter::User do
|
|
313
313
|
describe "#website" do
|
314
314
|
it "returns a URI when the url is set" do
|
315
315
|
user = Twitter::User.new(:id => 7505382, :url => "https://github.com/sferik")
|
316
|
-
expect(user.website).to be_a URI
|
316
|
+
expect(user.website).to be_a Addressable::URI
|
317
317
|
expect(user.website.to_s).to eq("https://github.com/sferik")
|
318
318
|
end
|
319
319
|
it "returns nil when the url is not set" do
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0
|
4
|
+
version: 5.1.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Erik Michaels-Ober
|
@@ -12,187 +13,215 @@ authors:
|
|
12
13
|
autorequire:
|
13
14
|
bindir: bin
|
14
15
|
cert_chain:
|
15
|
-
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
16
|
+
- !binary |-
|
17
|
+
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURMakNDQWhhZ0F3SUJB
|
18
|
+
Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREE5TVE4d0RRWURWUVFEREFaelpt
|
19
|
+
VnkKYVdzeEZUQVRCZ29Ka2lhSmsvSXNaQUVaRmdWbmJXRnBiREVUTUJFR0Nn
|
20
|
+
bVNKb21UOGl4a0FSa1dBMk52YlRBZQpGdzB4TXpBeU1ETXhNREF5TWpkYUZ3
|
21
|
+
MHhOREF5TURNeE1EQXlNamRhTUQweER6QU5CZ05WQkFNTUJuTm1aWEpwCmF6
|
22
|
+
RVZNQk1HQ2dtU0pvbVQ4aXhrQVJrV0JXZHRZV2xzTVJNd0VRWUtDWkltaVpQ
|
23
|
+
eUxHUUJHUllEWTI5dE1JSUIKSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4
|
24
|
+
QU1JSUJDZ0tDQVFFQWwweDVkeDh1S3hpN1Rrckl1eUJVVEpWQgp2MW85M25V
|
25
|
+
QjlqL3k0TTk2Z1Yycll3QWNpMUpQQnNlTmQ2RnliempvM1lHdUhsN0VRSHVT
|
26
|
+
SE5hZjFwMmx4ZXcvCnk2MEpYSUpCQmdQY0RLL0tDUDROVUhvZm0wamZvWUQr
|
27
|
+
SDV1TkpmSENOcTcvWnNUeE90RTNSYTkyczBCQ01UcG0Kd0JNTWxXUjVNdGRF
|
28
|
+
aElZdUJPNFhobmVqWWdIMEwvN0JMMmx5bW50Vm5zci9hZ2RRb29qUUNOMUlR
|
29
|
+
bXNSSnZyUgpkdVpSTzN0WnZvSW8xcEJjNEpFZWhEdXFDZXlCZ1BMT3FNb0t0
|
30
|
+
UWxvbGQxVFFzMWtXVUJLN0tXTUZFaEtDL0tnCnp5ektSSFFvOXlEWXdPdllu
|
31
|
+
Z29CTFkrVC9sd0NUNGR5c3NkaHpSYmZueEFoYUt1NFNBc3NJd2FDMDF5Vm93
|
32
|
+
SUQKQVFBQm96a3dOekFKQmdOVkhSTUVBakFBTUIwR0ExVWREZ1FXQkJTMHJ1
|
33
|
+
RGZSYWs1Y2kxT3BETlgvWmRERWtJcwppVEFMQmdOVkhROEVCQU1DQkxBd0RR
|
34
|
+
WUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFISFNNcy9NUDBzT2FMa0V2NEpvCnp2
|
35
|
+
a20zcW41QTZ0MHZhSHg3NzRjbWVqeU1VKzV3eVN4UmV6c3BMN1VMaDlOZXVL
|
36
|
+
Mk9oVStPZTNUcHFyQWc1VEsKUjhHUUlMblZ1MkZlbUdBNnNBa1BEbGNQdGdB
|
37
|
+
NmllSTE5UFpPRjZIVkxtYy9JRC9kUC9OZ1pXV3pFZXFRS21jSwoyK0hNK1NF
|
38
|
+
RURoWmtTY1lla3c0Wk9lMTY0WnRaRzgxNm9BdjV4MHBHaXRTSWt1bVVwN1Y4
|
39
|
+
aUVaLzZlaHI3WTllClhPZzRlZXVuNUwvSmptakFSb1cya05kdmtSRDNjMkVl
|
40
|
+
U0xxV3ZRUnNCbHlwSGZoczZKSnVMbHlaUEdoVTNSL3YKU2YzbFZLcEJDV2dS
|
41
|
+
cEdUdnk0NVhWcEIrNTl5MzNQSm1FdVExUFRFT1l2UXlhbzlVS01BQWFBTi83
|
42
|
+
cVdRdGpsMApobHc9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
36
43
|
date: 2013-11-28 00:00:00.000000000 Z
|
37
44
|
dependencies:
|
38
45
|
- !ruby/object:Gem::Dependency
|
39
46
|
name: addressable
|
40
47
|
requirement: !ruby/object:Gem::Requirement
|
48
|
+
none: false
|
41
49
|
requirements:
|
42
|
-
- -
|
50
|
+
- - ~>
|
43
51
|
- !ruby/object:Gem::Version
|
44
52
|
version: '2.3'
|
45
53
|
type: :runtime
|
46
54
|
prerelease: false
|
47
55
|
version_requirements: !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
48
57
|
requirements:
|
49
|
-
- -
|
58
|
+
- - ~>
|
50
59
|
- !ruby/object:Gem::Version
|
51
60
|
version: '2.3'
|
52
61
|
- !ruby/object:Gem::Dependency
|
53
62
|
name: buftok
|
54
63
|
requirement: !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
55
65
|
requirements:
|
56
|
-
- -
|
66
|
+
- - ~>
|
57
67
|
- !ruby/object:Gem::Version
|
58
68
|
version: 0.2.0
|
59
69
|
type: :runtime
|
60
70
|
prerelease: false
|
61
71
|
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
62
73
|
requirements:
|
63
|
-
- -
|
74
|
+
- - ~>
|
64
75
|
- !ruby/object:Gem::Version
|
65
76
|
version: 0.2.0
|
66
77
|
- !ruby/object:Gem::Dependency
|
67
78
|
name: descendants_tracker
|
68
79
|
requirement: !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
69
81
|
requirements:
|
70
|
-
- -
|
82
|
+
- - ~>
|
71
83
|
- !ruby/object:Gem::Version
|
72
84
|
version: 0.0.1
|
73
85
|
type: :runtime
|
74
86
|
prerelease: false
|
75
87
|
version_requirements: !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
76
89
|
requirements:
|
77
|
-
- -
|
90
|
+
- - ~>
|
78
91
|
- !ruby/object:Gem::Version
|
79
92
|
version: 0.0.1
|
80
93
|
- !ruby/object:Gem::Dependency
|
81
94
|
name: equalizer
|
82
95
|
requirement: !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
83
97
|
requirements:
|
84
|
-
- -
|
98
|
+
- - ~>
|
85
99
|
- !ruby/object:Gem::Version
|
86
100
|
version: 0.0.7
|
87
101
|
type: :runtime
|
88
102
|
prerelease: false
|
89
103
|
version_requirements: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
90
105
|
requirements:
|
91
|
-
- -
|
106
|
+
- - ~>
|
92
107
|
- !ruby/object:Gem::Version
|
93
108
|
version: 0.0.7
|
94
109
|
- !ruby/object:Gem::Dependency
|
95
110
|
name: faraday
|
96
111
|
requirement: !ruby/object:Gem::Requirement
|
112
|
+
none: false
|
97
113
|
requirements:
|
98
|
-
- -
|
114
|
+
- - ! '>='
|
99
115
|
- !ruby/object:Gem::Version
|
100
116
|
version: '0.8'
|
101
|
-
- -
|
117
|
+
- - <
|
102
118
|
- !ruby/object:Gem::Version
|
103
119
|
version: '0.10'
|
104
120
|
type: :runtime
|
105
121
|
prerelease: false
|
106
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
107
124
|
requirements:
|
108
|
-
- -
|
125
|
+
- - ! '>='
|
109
126
|
- !ruby/object:Gem::Version
|
110
127
|
version: '0.8'
|
111
|
-
- -
|
128
|
+
- - <
|
112
129
|
- !ruby/object:Gem::Version
|
113
130
|
version: '0.10'
|
114
131
|
- !ruby/object:Gem::Dependency
|
115
132
|
name: http
|
116
133
|
requirement: !ruby/object:Gem::Requirement
|
134
|
+
none: false
|
117
135
|
requirements:
|
118
|
-
- -
|
136
|
+
- - ~>
|
119
137
|
- !ruby/object:Gem::Version
|
120
138
|
version: 0.5.0
|
121
139
|
type: :runtime
|
122
140
|
prerelease: false
|
123
141
|
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
none: false
|
124
143
|
requirements:
|
125
|
-
- -
|
144
|
+
- - ~>
|
126
145
|
- !ruby/object:Gem::Version
|
127
146
|
version: 0.5.0
|
128
147
|
- !ruby/object:Gem::Dependency
|
129
148
|
name: http_parser.rb
|
130
149
|
requirement: !ruby/object:Gem::Requirement
|
150
|
+
none: false
|
131
151
|
requirements:
|
132
|
-
- -
|
152
|
+
- - ~>
|
133
153
|
- !ruby/object:Gem::Version
|
134
154
|
version: 0.5.0
|
135
155
|
type: :runtime
|
136
156
|
prerelease: false
|
137
157
|
version_requirements: !ruby/object:Gem::Requirement
|
158
|
+
none: false
|
138
159
|
requirements:
|
139
|
-
- -
|
160
|
+
- - ~>
|
140
161
|
- !ruby/object:Gem::Version
|
141
162
|
version: 0.5.0
|
142
163
|
- !ruby/object:Gem::Dependency
|
143
164
|
name: json
|
144
165
|
requirement: !ruby/object:Gem::Requirement
|
166
|
+
none: false
|
145
167
|
requirements:
|
146
|
-
- -
|
168
|
+
- - ~>
|
147
169
|
- !ruby/object:Gem::Version
|
148
170
|
version: '1.8'
|
149
171
|
type: :runtime
|
150
172
|
prerelease: false
|
151
173
|
version_requirements: !ruby/object:Gem::Requirement
|
174
|
+
none: false
|
152
175
|
requirements:
|
153
|
-
- -
|
176
|
+
- - ~>
|
154
177
|
- !ruby/object:Gem::Version
|
155
178
|
version: '1.8'
|
156
179
|
- !ruby/object:Gem::Dependency
|
157
180
|
name: memoizable
|
158
181
|
requirement: !ruby/object:Gem::Requirement
|
182
|
+
none: false
|
159
183
|
requirements:
|
160
|
-
- -
|
184
|
+
- - ~>
|
161
185
|
- !ruby/object:Gem::Version
|
162
186
|
version: 0.2.0
|
163
187
|
type: :runtime
|
164
188
|
prerelease: false
|
165
189
|
version_requirements: !ruby/object:Gem::Requirement
|
190
|
+
none: false
|
166
191
|
requirements:
|
167
|
-
- -
|
192
|
+
- - ~>
|
168
193
|
- !ruby/object:Gem::Version
|
169
194
|
version: 0.2.0
|
170
195
|
- !ruby/object:Gem::Dependency
|
171
196
|
name: simple_oauth
|
172
197
|
requirement: !ruby/object:Gem::Requirement
|
198
|
+
none: false
|
173
199
|
requirements:
|
174
|
-
- -
|
200
|
+
- - ~>
|
175
201
|
- !ruby/object:Gem::Version
|
176
202
|
version: 0.2.0
|
177
203
|
type: :runtime
|
178
204
|
prerelease: false
|
179
205
|
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
none: false
|
180
207
|
requirements:
|
181
|
-
- -
|
208
|
+
- - ~>
|
182
209
|
- !ruby/object:Gem::Version
|
183
210
|
version: 0.2.0
|
184
211
|
- !ruby/object:Gem::Dependency
|
185
212
|
name: bundler
|
186
213
|
requirement: !ruby/object:Gem::Requirement
|
214
|
+
none: false
|
187
215
|
requirements:
|
188
|
-
- -
|
216
|
+
- - ~>
|
189
217
|
- !ruby/object:Gem::Version
|
190
218
|
version: '1.0'
|
191
219
|
type: :development
|
192
220
|
prerelease: false
|
193
221
|
version_requirements: !ruby/object:Gem::Requirement
|
222
|
+
none: false
|
194
223
|
requirements:
|
195
|
-
- -
|
224
|
+
- - ~>
|
196
225
|
- !ruby/object:Gem::Version
|
197
226
|
version: '1.0'
|
198
227
|
description: A Ruby interface to the Twitter API.
|
@@ -202,13 +231,13 @@ executables: []
|
|
202
231
|
extensions: []
|
203
232
|
extra_rdoc_files: []
|
204
233
|
files:
|
205
|
-
-
|
234
|
+
- .yardopts
|
206
235
|
- CHANGELOG.md
|
207
236
|
- CONTRIBUTING.md
|
208
237
|
- LICENSE.md
|
209
238
|
- README.md
|
210
239
|
- Rakefile
|
211
|
-
-
|
240
|
+
- twitter.gemspec
|
212
241
|
- lib/twitter/arguments.rb
|
213
242
|
- lib/twitter/base.rb
|
214
243
|
- lib/twitter/basic_user.rb
|
@@ -219,13 +248,12 @@ files:
|
|
219
248
|
- lib/twitter/creatable.rb
|
220
249
|
- lib/twitter/cursor.rb
|
221
250
|
- lib/twitter/direct_message.rb
|
222
|
-
- lib/twitter/entity.rb
|
223
251
|
- lib/twitter/entity/hashtag.rb
|
224
252
|
- lib/twitter/entity/symbol.rb
|
225
253
|
- lib/twitter/entity/uri.rb
|
226
254
|
- lib/twitter/entity/user_mention.rb
|
255
|
+
- lib/twitter/entity.rb
|
227
256
|
- lib/twitter/enumerable.rb
|
228
|
-
- lib/twitter/error.rb
|
229
257
|
- lib/twitter/error/already_favorited.rb
|
230
258
|
- lib/twitter/error/already_posted.rb
|
231
259
|
- lib/twitter/error/already_retweeted.rb
|
@@ -241,10 +269,11 @@ files:
|
|
241
269
|
- lib/twitter/error/too_many_requests.rb
|
242
270
|
- lib/twitter/error/unauthorized.rb
|
243
271
|
- lib/twitter/error/unprocessable_entity.rb
|
272
|
+
- lib/twitter/error.rb
|
244
273
|
- lib/twitter/factory.rb
|
245
|
-
- lib/twitter/geo.rb
|
246
274
|
- lib/twitter/geo/point.rb
|
247
275
|
- lib/twitter/geo/polygon.rb
|
276
|
+
- lib/twitter/geo.rb
|
248
277
|
- lib/twitter/geo_factory.rb
|
249
278
|
- lib/twitter/geo_results.rb
|
250
279
|
- lib/twitter/identity.rb
|
@@ -300,6 +329,7 @@ files:
|
|
300
329
|
- lib/twitter/tweet.rb
|
301
330
|
- lib/twitter/user.rb
|
302
331
|
- lib/twitter/version.rb
|
332
|
+
- lib/twitter.rb
|
303
333
|
- spec/fixtures/already_favorited.json
|
304
334
|
- spec/fixtures/already_posted.json
|
305
335
|
- spec/fixtures/already_retweeted.json
|
@@ -418,30 +448,30 @@ files:
|
|
418
448
|
- spec/twitter/tweet_spec.rb
|
419
449
|
- spec/twitter/user_spec.rb
|
420
450
|
- spec/twitter_spec.rb
|
421
|
-
- twitter.gemspec
|
422
451
|
homepage: http://sferik.github.com/twitter/
|
423
452
|
licenses:
|
424
453
|
- MIT
|
425
|
-
metadata: {}
|
426
454
|
post_install_message:
|
427
455
|
rdoc_options: []
|
428
456
|
require_paths:
|
429
457
|
- lib
|
430
458
|
required_ruby_version: !ruby/object:Gem::Requirement
|
459
|
+
none: false
|
431
460
|
requirements:
|
432
|
-
- -
|
461
|
+
- - ! '>='
|
433
462
|
- !ruby/object:Gem::Version
|
434
463
|
version: '0'
|
435
464
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
465
|
+
none: false
|
436
466
|
requirements:
|
437
|
-
- -
|
467
|
+
- - ! '>='
|
438
468
|
- !ruby/object:Gem::Version
|
439
469
|
version: 1.3.5
|
440
470
|
requirements: []
|
441
471
|
rubyforge_project:
|
442
|
-
rubygems_version:
|
472
|
+
rubygems_version: 1.8.23
|
443
473
|
signing_key:
|
444
|
-
specification_version:
|
474
|
+
specification_version: 3
|
445
475
|
summary: A Ruby interface to the Twitter API.
|
446
476
|
test_files:
|
447
477
|
- spec/fixtures/already_favorited.json
|
metadata.gz.sig
CHANGED
Binary file
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: cd3b043b736ba3c54df5a11613f965fe07d5cdd1
|
4
|
-
data.tar.gz: 6877cd5f7ce89f0426c782f3422f43121bde323d
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 3bf02c9354b02c672eb6f2aa5be96c2c31c56b14062eb9b5d6e88289191e47d70e25afe261e9d4cb4dbc778fee756fa5f4743fe10254af65f1dd9677d9987b09
|
7
|
-
data.tar.gz: 497a677015108a2867a605bf27df26e2e8cb4d1b5998464171e58d06fcbcb929ade0d1523e0b905c27d98582c22f943d3419e2f08d13aa79766ba3adf4bbdb1a
|
checksums.yaml.gz.sig
DELETED
Binary file
|