twitter 5.7.1 → 5.8.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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +6 -0
- data/README.md +8 -6
- data/Rakefile +1 -1
- data/lib/twitter/client.rb +1 -1
- data/lib/twitter/enumerable.rb +2 -2
- data/lib/twitter/error.rb +8 -7
- data/lib/twitter/rest/api.rb +16 -20
- data/lib/twitter/rest/direct_messages.rb +1 -1
- data/lib/twitter/rest/favorites.rb +2 -2
- data/lib/twitter/rest/friends_and_followers.rb +1 -1
- data/lib/twitter/rest/lists.rb +1 -1
- data/lib/twitter/rest/saved_searches.rb +2 -2
- data/lib/twitter/rest/tweets.rb +5 -7
- data/lib/twitter/rest/users.rb +2 -2
- data/lib/twitter/rest/utils.rb +2 -2
- data/lib/twitter/tweet.rb +1 -2
- data/lib/twitter/utils.rb +32 -4
- data/lib/twitter/version.rb +2 -2
- data/spec/twitter/rest/tweets_spec.rb +4 -4
- data/spec/twitter/tweet_spec.rb +13 -13
- data/twitter.gemspec +0 -2
- metadata +10 -58
- data.tar.gz.sig +0 -1
- metadata.gz.sig +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: dc32f77074cfd5de637ffc365e447e495671a4f0
|
4
|
+
data.tar.gz: 6e0db9a63563738038f8b7d4a01ab31ba8c26638
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6769ad63be7a42623f35a5038c85fccc9a3c9272b0f5466b6ab25fa572ab4c01bccb6c0587206a755287464c648731cd1d06ddba2b6cfb45139adf0821483f99
|
7
|
+
data.tar.gz: 76fa19aae6030e3f114fe85e549d07bb33874477beea67372597a4305891a26084d08061944cb82096f174feadf6e2d86a815fc34f4447b5501f3259ab690603
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
5.8.0
|
2
|
+
-----
|
3
|
+
* [Alias `Twitter::Tweet#reply?` to `Twitter::Tweet#in_reply_to_user_id?`](https://github.com/sferik/twitter/commit/57147287d25e21a5e740ee69c3e9aeec6abd1b06)
|
4
|
+
* [Add `Twitter::Error::SSL_REQUIRED` error code](https://github.com/sferik/twitter/commit/0cb7e6c132b73766bc978ccb45dd8d9cba43f660)
|
5
|
+
* [`Twitter::Tweet#retweeted_status` always returns the original tweet, not the retweet](https://github.com/sferik/twitter/commit/70fede7fa09a87b7e1cba5b8b4be82127c9eaf51) ([@IanChoiJugnoo](https://twitter.com/IanChoiJugnoo))
|
6
|
+
|
1
7
|
5.7.1
|
2
8
|
-----
|
3
9
|
* [Only warn if entities are not included](https://github.com/sferik/twitter/commit/82ed19e69c03ccaccc366744421b3bb3ee444625) ([@matthewrudy](https://twitter.com/matthewrudy))
|
data/README.md
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
# The Twitter Ruby Gem
|
2
2
|
|
3
|
-
[][gem]
|
4
|
+
[][travis]
|
5
|
+
[][gemnasium]
|
6
|
+
[][codeclimate]
|
7
|
+
[][coveralls]
|
8
|
+
[][gittip]
|
9
|
+
[][inchpages]
|
9
10
|
|
10
11
|
[gem]: https://rubygems.org/gems/twitter
|
11
12
|
[travis]: http://travis-ci.org/sferik/twitter
|
@@ -13,6 +14,7 @@
|
|
13
14
|
[codeclimate]: https://codeclimate.com/github/sferik/twitter
|
14
15
|
[coveralls]: https://coveralls.io/r/sferik/twitter
|
15
16
|
[gittip]: https://www.gittip.com/gems/
|
17
|
+
[inchpages]: http://inch-pages.github.io/github/sferik/twitter
|
16
18
|
|
17
19
|
A Ruby interface to the Twitter API.
|
18
20
|
|
data/Rakefile
CHANGED
data/lib/twitter/client.rb
CHANGED
data/lib/twitter/enumerable.rb
CHANGED
@@ -4,9 +4,9 @@ module Twitter
|
|
4
4
|
|
5
5
|
# @return [Enumerator]
|
6
6
|
def each(start = 0, &block)
|
7
|
-
return to_enum(:each) unless block_given?
|
7
|
+
return to_enum(:each, start) unless block_given?
|
8
8
|
Array(@collection[start..-1]).each do |element|
|
9
|
-
yield
|
9
|
+
yield(element)
|
10
10
|
end
|
11
11
|
unless last?
|
12
12
|
start = [@collection.size, start].max
|
data/lib/twitter/error.rb
CHANGED
@@ -7,13 +7,14 @@ module Twitter
|
|
7
7
|
|
8
8
|
# If error code is missing see https://dev.twitter.com/docs/error-codes-responses
|
9
9
|
module Code
|
10
|
-
AUTHENTICATION_PROBLEM =
|
11
|
-
RESOURCE_NOT_FOUND =
|
12
|
-
SUSPENDED_ACCOUNT =
|
13
|
-
DEPRECATED_CALL =
|
14
|
-
RATE_LIMIT_EXCEEDED =
|
15
|
-
INVALID_OR_EXPIRED_TOKEN =
|
16
|
-
|
10
|
+
AUTHENTICATION_PROBLEM = 32
|
11
|
+
RESOURCE_NOT_FOUND = 34
|
12
|
+
SUSPENDED_ACCOUNT = 64
|
13
|
+
DEPRECATED_CALL = 68
|
14
|
+
RATE_LIMIT_EXCEEDED = 88
|
15
|
+
INVALID_OR_EXPIRED_TOKEN = 89
|
16
|
+
SSL_REQUIRED = 92
|
17
|
+
UNABLE_TO_VERIFY_CREDENTIALS = 99
|
17
18
|
OVER_CAPACITY = 130
|
18
19
|
INTERNAL_ERROR = 131
|
19
20
|
OAUTH_TIMESTAMP_OUT_OF_RANGE = 135
|
data/lib/twitter/rest/api.rb
CHANGED
@@ -18,26 +18,22 @@ require 'twitter/rest/users'
|
|
18
18
|
module Twitter
|
19
19
|
module REST
|
20
20
|
module API
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
Twitter::REST::Users,
|
38
|
-
].each do |klass|
|
39
|
-
include klass
|
40
|
-
end
|
21
|
+
include Twitter::REST::DirectMessages
|
22
|
+
include Twitter::REST::Favorites
|
23
|
+
include Twitter::REST::FriendsAndFollowers
|
24
|
+
include Twitter::REST::Help
|
25
|
+
include Twitter::REST::Lists
|
26
|
+
include Twitter::REST::OAuth
|
27
|
+
include Twitter::REST::PlacesAndGeo
|
28
|
+
include Twitter::REST::SavedSearches
|
29
|
+
include Twitter::REST::Search
|
30
|
+
include Twitter::REST::SpamReporting
|
31
|
+
include Twitter::REST::SuggestedUsers
|
32
|
+
include Twitter::REST::Timelines
|
33
|
+
include Twitter::REST::Trends
|
34
|
+
include Twitter::REST::Tweets
|
35
|
+
include Twitter::REST::Undocumented
|
36
|
+
include Twitter::REST::Users
|
41
37
|
end
|
42
38
|
end
|
43
39
|
end
|
@@ -68,7 +68,7 @@ module Twitter
|
|
68
68
|
# @param options [Hash] A customizable set of options.
|
69
69
|
def favorite(*args)
|
70
70
|
arguments = Twitter::Arguments.new(args)
|
71
|
-
|
71
|
+
pmap(arguments) do |tweet|
|
72
72
|
begin
|
73
73
|
perform_with_object(:post, '/1.1/favorites/create.json', arguments.options.merge(:id => extract_id(tweet)), Twitter::Tweet)
|
74
74
|
rescue Twitter::Error::AlreadyFavorited
|
@@ -95,7 +95,7 @@ module Twitter
|
|
95
95
|
# @param options [Hash] A customizable set of options.
|
96
96
|
def favorite!(*args)
|
97
97
|
arguments = Twitter::Arguments.new(args)
|
98
|
-
|
98
|
+
pmap(arguments) do |tweet|
|
99
99
|
perform_with_object(:post, '/1.1/favorites/create.json', arguments.options.merge(:id => extract_id(tweet)), Twitter::Tweet)
|
100
100
|
end
|
101
101
|
end
|
@@ -131,7 +131,7 @@ module Twitter
|
|
131
131
|
# @option options [Boolean] :follow (false) Enable notifications for the target user.
|
132
132
|
def follow!(*args)
|
133
133
|
arguments = Twitter::Arguments.new(args)
|
134
|
-
|
134
|
+
pmap(arguments) do |user|
|
135
135
|
perform_with_object(:post, '/1.1/friendships/create.json', merge_user(arguments.options, user), Twitter::User)
|
136
136
|
end.compact
|
137
137
|
end
|
data/lib/twitter/rest/lists.rb
CHANGED
@@ -438,7 +438,7 @@ module Twitter
|
|
438
438
|
members = arguments.pop
|
439
439
|
merge_list!(options, arguments.pop)
|
440
440
|
merge_owner!(options, arguments.pop)
|
441
|
-
|
441
|
+
pmap(members.flatten.each_slice(MAX_USERS_PER_REQUEST)) do |users|
|
442
442
|
perform_with_object(request_method, path, merge_users(options, users), Twitter::List)
|
443
443
|
end.last
|
444
444
|
end
|
@@ -35,7 +35,7 @@ module Twitter
|
|
35
35
|
if arguments.empty?
|
36
36
|
perform_with_objects(:get, '/1.1/saved_searches/list.json', arguments.options, Twitter::SavedSearch)
|
37
37
|
else
|
38
|
-
|
38
|
+
pmap(arguments) do |id|
|
39
39
|
saved_search(id, arguments.options)
|
40
40
|
end
|
41
41
|
end
|
@@ -83,7 +83,7 @@ module Twitter
|
|
83
83
|
# @param options [Hash] A customizable set of options.
|
84
84
|
def destroy_saved_search(*args)
|
85
85
|
arguments = Twitter::Arguments.new(args)
|
86
|
-
|
86
|
+
pmap(arguments) do |id|
|
87
87
|
perform_with_object(:post, "/1.1/saved_searches/destroy/#{id}.json", arguments.options, Twitter::SavedSearch)
|
88
88
|
end
|
89
89
|
end
|
data/lib/twitter/rest/tweets.rb
CHANGED
@@ -163,7 +163,7 @@ module Twitter
|
|
163
163
|
# @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.
|
164
164
|
def retweet(*args)
|
165
165
|
arguments = Twitter::Arguments.new(args)
|
166
|
-
|
166
|
+
pmap(arguments) do |tweet|
|
167
167
|
begin
|
168
168
|
post_retweet(extract_id(tweet), arguments.options)
|
169
169
|
rescue Twitter::Error::AlreadyRetweeted
|
@@ -188,7 +188,7 @@ module Twitter
|
|
188
188
|
# @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.
|
189
189
|
def retweet!(*args)
|
190
190
|
arguments = Twitter::Arguments.new(args)
|
191
|
-
|
191
|
+
pmap(arguments) do |tweet|
|
192
192
|
post_retweet(extract_id(tweet), arguments.options)
|
193
193
|
end.compact
|
194
194
|
end
|
@@ -262,7 +262,7 @@ module Twitter
|
|
262
262
|
# @option options [String] :lang Language code for the rendered embed. This will affect the text and localization of the rendered HTML.
|
263
263
|
def oembeds(*args)
|
264
264
|
arguments = Twitter::Arguments.new(args)
|
265
|
-
|
265
|
+
pmap(arguments) do |tweet|
|
266
266
|
oembed(extract_id(tweet), arguments.options)
|
267
267
|
end
|
268
268
|
end
|
@@ -293,16 +293,14 @@ module Twitter
|
|
293
293
|
# @return [Array<Twitter::Tweet>]
|
294
294
|
def parallel_tweets_from_response(request_method, path, args)
|
295
295
|
arguments = Twitter::Arguments.new(args)
|
296
|
-
|
296
|
+
pmap(arguments) do |tweet|
|
297
297
|
perform_with_object(request_method, path + "/#{extract_id(tweet)}.json", arguments.options, Twitter::Tweet)
|
298
298
|
end
|
299
299
|
end
|
300
300
|
|
301
301
|
def post_retweet(tweet, options)
|
302
302
|
response = post("/1.1/statuses/retweet/#{extract_id(tweet)}.json", options).body
|
303
|
-
|
304
|
-
retweeted_status[:retweeted_status] = response
|
305
|
-
Twitter::Tweet.new(retweeted_status)
|
303
|
+
Twitter::Tweet.new(response)
|
306
304
|
end
|
307
305
|
end
|
308
306
|
end
|
data/lib/twitter/rest/users.rb
CHANGED
@@ -227,9 +227,9 @@ module Twitter
|
|
227
227
|
def users(*args)
|
228
228
|
arguments = Twitter::Arguments.new(args)
|
229
229
|
request_method = arguments.options.delete(:method) || :post
|
230
|
-
|
230
|
+
flat_pmap(arguments.each_slice(MAX_USERS_PER_REQUEST)) do |users|
|
231
231
|
perform_with_objects(request_method, '/1.1/users/lookup.json', merge_users(arguments.options, users), Twitter::User)
|
232
|
-
end
|
232
|
+
end
|
233
233
|
end
|
234
234
|
|
235
235
|
# @see https://dev.twitter.com/docs/api/1.1/get/users/show
|
data/lib/twitter/rest/utils.rb
CHANGED
@@ -64,7 +64,7 @@ module Twitter
|
|
64
64
|
# @return [Array<Twitter::User>]
|
65
65
|
def parallel_user_objects_from_response(request_method, path, args)
|
66
66
|
arguments = Twitter::Arguments.new(args)
|
67
|
-
|
67
|
+
pmap(arguments) do |user|
|
68
68
|
perform_with_object(request_method, path, merge_user(arguments.options, user), Twitter::User)
|
69
69
|
end
|
70
70
|
end
|
@@ -97,7 +97,7 @@ module Twitter
|
|
97
97
|
# @return [Array]
|
98
98
|
def parallel_objects_from_response(klass, request_method, path, args)
|
99
99
|
arguments = Twitter::Arguments.new(args)
|
100
|
-
|
100
|
+
pmap(arguments) do |object|
|
101
101
|
perform_with_object(request_method, path, arguments.options.merge(:id => extract_id(object)), klass)
|
102
102
|
end
|
103
103
|
end
|
data/lib/twitter/tweet.rb
CHANGED
@@ -13,13 +13,12 @@ module Twitter
|
|
13
13
|
deprecate_alias :favorites_count, :favorite_count
|
14
14
|
deprecate_alias :favoriters_count, :favorite_count
|
15
15
|
alias_method :in_reply_to_tweet_id, :in_reply_to_status_id
|
16
|
-
alias_method :reply?, :
|
16
|
+
alias_method :reply?, :in_reply_to_user_id?
|
17
17
|
deprecate_alias :retweeters_count, :retweet_count
|
18
18
|
object_attr_reader :GeoFactory, :geo
|
19
19
|
object_attr_reader :Metadata, :metadata
|
20
20
|
object_attr_reader :Place, :place
|
21
21
|
object_attr_reader :Tweet, :retweeted_status
|
22
|
-
alias_method :retweet, :retweeted_status
|
23
22
|
alias_method :retweeted_tweet, :retweeted_status
|
24
23
|
alias_method :retweet?, :retweeted_status?
|
25
24
|
alias_method :retweeted_tweet?, :retweeted_status?
|
data/lib/twitter/utils.rb
CHANGED
@@ -15,14 +15,42 @@ module Twitter
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
|
18
|
+
# Returns a new array with the concatenated results of running block once for every element in enumerable.
|
19
|
+
# If no block is given, an enumerator is returned instead.
|
20
|
+
#
|
21
|
+
# @param enumerable [Enumerable]
|
22
|
+
# @return [Array, Enumerator]
|
23
|
+
def flat_pmap(enumerable, &block)
|
24
|
+
return to_enum(:flat_pmap, enumerable) unless block_given?
|
25
|
+
pmap(enumerable, &block).flatten(1)
|
26
|
+
end
|
27
|
+
module_function :flat_pmap
|
28
|
+
|
29
|
+
# Returns a new array with the results of running block once for every element in enumerable.
|
30
|
+
# If no block is given, an enumerator is returned instead.
|
31
|
+
#
|
32
|
+
# @param enumerable [Enumerable]
|
33
|
+
# @return [Array, Enumerator]
|
34
|
+
def pmap(enumerable)
|
35
|
+
return to_enum(:pmap, enumerable) unless block_given?
|
36
|
+
pmap_with_index(enumerable).sort_by { |_, index| index }.collect { |object, _| yield(object) }
|
37
|
+
end
|
38
|
+
module_function :pmap
|
39
|
+
|
40
|
+
# Calls block with two arguments, the item and its index, for each item in enumerable. Given arguments are passed through to pmap.
|
41
|
+
# If no block is given, an enumerator is returned instead.
|
42
|
+
#
|
43
|
+
# @param enumerable [Enumerable]
|
44
|
+
# @return [Array, Enumerator]
|
45
|
+
def pmap_with_index(enumerable)
|
46
|
+
return to_enum(:pmap_with_index, enumerable) unless block_given?
|
19
47
|
# Don't bother spawning a new thread if there's only one item
|
20
48
|
if enumerable.count == 1
|
21
|
-
enumerable.collect { |object| yield
|
49
|
+
enumerable.collect { |object| yield(object, 0) }
|
22
50
|
else
|
23
|
-
enumerable.collect { |object| Thread.new { yield
|
51
|
+
enumerable.each_with_index.collect { |object, index| Thread.new { yield(object, index) } }.collect(&:value)
|
24
52
|
end
|
25
53
|
end
|
26
|
-
module_function :
|
54
|
+
module_function :pmap_with_index
|
27
55
|
end
|
28
56
|
end
|
data/lib/twitter/version.rb
CHANGED
@@ -347,8 +347,8 @@ describe Twitter::REST::Tweets do
|
|
347
347
|
tweets = @client.retweet(25_938_088_801)
|
348
348
|
expect(tweets).to be_an Array
|
349
349
|
expect(tweets.first).to be_a Twitter::Tweet
|
350
|
-
expect(tweets.first.text).to eq("As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush.")
|
351
|
-
expect(tweets.first.retweeted_tweet.text).to eq("
|
350
|
+
expect(tweets.first.text).to eq("RT @gruber: As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush.")
|
351
|
+
expect(tweets.first.retweeted_tweet.text).to eq("As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush.")
|
352
352
|
expect(tweets.first.retweeted_tweet.id).not_to eq(tweets.first.id)
|
353
353
|
end
|
354
354
|
context 'already retweeted' do
|
@@ -393,8 +393,8 @@ describe Twitter::REST::Tweets do
|
|
393
393
|
tweets = @client.retweet!(25_938_088_801)
|
394
394
|
expect(tweets).to be_an Array
|
395
395
|
expect(tweets.first).to be_a Twitter::Tweet
|
396
|
-
expect(tweets.first.text).to eq("As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush.")
|
397
|
-
expect(tweets.first.retweeted_tweet.text).to eq("
|
396
|
+
expect(tweets.first.text).to eq("RT @gruber: As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush.")
|
397
|
+
expect(tweets.first.retweeted_tweet.text).to eq("As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush.")
|
398
398
|
expect(tweets.first.retweeted_tweet.id).not_to eq(tweets.first.id)
|
399
399
|
end
|
400
400
|
context 'forbidden' do
|
data/spec/twitter/tweet_spec.rb
CHANGED
@@ -187,11 +187,11 @@ describe Twitter::Tweet do
|
|
187
187
|
:hashtags => [{:text => 'twitter', :indices => [10, 33]}]
|
188
188
|
}
|
189
189
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014, :entities => entities)
|
190
|
-
expect(tweet.hashtags?).to
|
190
|
+
expect(tweet.hashtags?).to be true
|
191
191
|
end
|
192
192
|
it 'returns false when no entities are present' do
|
193
193
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014)
|
194
|
-
expect(tweet.hashtags?).to
|
194
|
+
expect(tweet.hashtags?).to be false
|
195
195
|
end
|
196
196
|
end
|
197
197
|
|
@@ -217,11 +217,11 @@ describe Twitter::Tweet do
|
|
217
217
|
:media => [{:id => '1', :type => 'photo'}]
|
218
218
|
}
|
219
219
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014, :entities => entities)
|
220
|
-
expect(tweet.media?).to
|
220
|
+
expect(tweet.media?).to be true
|
221
221
|
end
|
222
222
|
it 'returns false when no entities are present' do
|
223
223
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014)
|
224
|
-
expect(tweet.media?).to
|
224
|
+
expect(tweet.media?).to be false
|
225
225
|
end
|
226
226
|
end
|
227
227
|
|
@@ -270,11 +270,11 @@ describe Twitter::Tweet do
|
|
270
270
|
end
|
271
271
|
|
272
272
|
describe '#reply?' do
|
273
|
-
it 'returns true when there is an in-reply-to
|
274
|
-
tweet = Twitter::Tweet.new(:id => 28_669_546_014, :
|
273
|
+
it 'returns true when there is an in-reply-to user' do
|
274
|
+
tweet = Twitter::Tweet.new(:id => 28_669_546_014, :in_reply_to_user_id => 7_505_382)
|
275
275
|
expect(tweet.reply?).to be true
|
276
276
|
end
|
277
|
-
it 'returns false when
|
277
|
+
it 'returns false when in_reply_to_user_id is not set' do
|
278
278
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014)
|
279
279
|
expect(tweet.reply?).to be false
|
280
280
|
end
|
@@ -343,11 +343,11 @@ describe Twitter::Tweet do
|
|
343
343
|
:symbols => [{:text => 'PEP'}]
|
344
344
|
}
|
345
345
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014, :entities => entities)
|
346
|
-
expect(tweet.symbols?).to
|
346
|
+
expect(tweet.symbols?).to be true
|
347
347
|
end
|
348
348
|
it 'returns false when no entities are present' do
|
349
349
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014)
|
350
|
-
expect(tweet.symbols?).to
|
350
|
+
expect(tweet.symbols?).to be false
|
351
351
|
end
|
352
352
|
end
|
353
353
|
|
@@ -407,11 +407,11 @@ describe Twitter::Tweet do
|
|
407
407
|
:urls => [{:url => 'http://with_underscore.example.com/t.co'}]
|
408
408
|
}
|
409
409
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014, :entities => entities)
|
410
|
-
expect(tweet.uris?).to
|
410
|
+
expect(tweet.uris?).to be true
|
411
411
|
end
|
412
412
|
it 'returns false when no entities are present' do
|
413
413
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014)
|
414
|
-
expect(tweet.uris?).to
|
414
|
+
expect(tweet.uris?).to be false
|
415
415
|
end
|
416
416
|
end
|
417
417
|
|
@@ -475,11 +475,11 @@ describe Twitter::Tweet do
|
|
475
475
|
:user_mentions => [{:screen_name => 'sferik'}]
|
476
476
|
}
|
477
477
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014, :entities => entities)
|
478
|
-
expect(tweet.user_mentions?).to
|
478
|
+
expect(tweet.user_mentions?).to be true
|
479
479
|
end
|
480
480
|
it 'returns false when no entities are present' do
|
481
481
|
tweet = Twitter::Tweet.new(:id => 28_669_546_014)
|
482
|
-
expect(tweet.user_mentions?).to
|
482
|
+
expect(tweet.user_mentions?).to be false
|
483
483
|
end
|
484
484
|
end
|
485
485
|
end
|
data/twitter.gemspec
CHANGED
@@ -15,7 +15,6 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.add_dependency 'simple_oauth', '~> 0.2.0'
|
16
16
|
spec.add_development_dependency 'bundler', '~> 1.0'
|
17
17
|
spec.authors = ['Erik Michaels-Ober', 'John Nunemaker', 'Wynn Netherland', 'Steve Richert', 'Steve Agalloco']
|
18
|
-
spec.cert_chain = %w[certs/sferik.pem]
|
19
18
|
spec.description = %q{A Ruby interface to the Twitter API.}
|
20
19
|
spec.email = %w[sferik@gmail.com]
|
21
20
|
spec.files = %w(.yardopts CHANGELOG.md CONTRIBUTING.md LICENSE.md README.md Rakefile twitter.gemspec)
|
@@ -26,7 +25,6 @@ Gem::Specification.new do |spec|
|
|
26
25
|
spec.name = 'twitter'
|
27
26
|
spec.require_paths = %w[lib]
|
28
27
|
spec.required_rubygems_version = '>= 1.3.5'
|
29
|
-
spec.signing_key = File.expand_path('~/.gem/private_key.pem') if $PROGRAM_NAME =~ /gem\z/
|
30
28
|
spec.summary = spec.description
|
31
29
|
spec.test_files = Dir.glob('spec/**/*')
|
32
30
|
spec.version = Twitter::Version
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
5
|
-
prerelease:
|
4
|
+
version: 5.8.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Erik Michaels-Ober
|
@@ -12,34 +11,12 @@ authors:
|
|
12
11
|
- Steve Agalloco
|
13
12
|
autorequire:
|
14
13
|
bindir: bin
|
15
|
-
cert_chain:
|
16
|
-
-
|
17
|
-
-----BEGIN CERTIFICATE-----
|
18
|
-
MIIDLjCCAhagAwIBAgIBADANBgkqhkiG9w0BAQUFADA9MQ8wDQYDVQQDDAZzZmVy
|
19
|
-
aWsxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2NvbTAe
|
20
|
-
Fw0xMzAyMDMxMDAyMjdaFw0xNDAyMDMxMDAyMjdaMD0xDzANBgNVBAMMBnNmZXJp
|
21
|
-
azEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29tMIIB
|
22
|
-
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl0x5dx8uKxi7TkrIuyBUTJVB
|
23
|
-
v1o93nUB9j/y4M96gV2rYwAci1JPBseNd6Fybzjo3YGuHl7EQHuSHNaf1p2lxew/
|
24
|
-
y60JXIJBBgPcDK/KCP4NUHofm0jfoYD+H5uNJfHCNq7/ZsTxOtE3Ra92s0BCMTpm
|
25
|
-
wBMMlWR5MtdEhIYuBO4XhnejYgH0L/7BL2lymntVnsr/agdQoojQCN1IQmsRJvrR
|
26
|
-
duZRO3tZvoIo1pBc4JEehDuqCeyBgPLOqMoKtQlold1TQs1kWUBK7KWMFEhKC/Kg
|
27
|
-
zyzKRHQo9yDYwOvYngoBLY+T/lwCT4dyssdhzRbfnxAhaKu4SAssIwaC01yVowID
|
28
|
-
AQABozkwNzAJBgNVHRMEAjAAMB0GA1UdDgQWBBS0ruDfRak5ci1OpDNX/ZdDEkIs
|
29
|
-
iTALBgNVHQ8EBAMCBLAwDQYJKoZIhvcNAQEFBQADggEBAHHSMs/MP0sOaLkEv4Jo
|
30
|
-
zvkm3qn5A6t0vaHx774cmejyMU+5wySxRezspL7ULh9NeuK2OhU+Oe3TpqrAg5TK
|
31
|
-
R8GQILnVu2FemGA6sAkPDlcPtgA6ieI19PZOF6HVLmc/ID/dP/NgZWWzEeqQKmcK
|
32
|
-
2+HM+SEEDhZkScYekw4ZOe164ZtZG816oAv5x0pGitSIkumUp7V8iEZ/6ehr7Y9e
|
33
|
-
XOg4eeun5L/JjmjARoW2kNdvkRD3c2EeSLqWvQRsBlypHfhs6JJuLlyZPGhU3R/v
|
34
|
-
Sf3lVKpBCWgRpGTvy45XVpB+59y33PJmEuQ1PTEOYvQyao9UKMAAaAN/7qWQtjl0
|
35
|
-
hlw=
|
36
|
-
-----END CERTIFICATE-----
|
37
|
-
date: 2014-02-12 00:00:00.000000000 Z
|
14
|
+
cert_chain: []
|
15
|
+
date: 2014-03-10 00:00:00.000000000 Z
|
38
16
|
dependencies:
|
39
17
|
- !ruby/object:Gem::Dependency
|
40
18
|
name: addressable
|
41
19
|
requirement: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
20
|
requirements:
|
44
21
|
- - "~>"
|
45
22
|
- !ruby/object:Gem::Version
|
@@ -47,7 +24,6 @@ dependencies:
|
|
47
24
|
type: :runtime
|
48
25
|
prerelease: false
|
49
26
|
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
27
|
requirements:
|
52
28
|
- - "~>"
|
53
29
|
- !ruby/object:Gem::Version
|
@@ -55,7 +31,6 @@ dependencies:
|
|
55
31
|
- !ruby/object:Gem::Dependency
|
56
32
|
name: buftok
|
57
33
|
requirement: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
34
|
requirements:
|
60
35
|
- - "~>"
|
61
36
|
- !ruby/object:Gem::Version
|
@@ -63,7 +38,6 @@ dependencies:
|
|
63
38
|
type: :runtime
|
64
39
|
prerelease: false
|
65
40
|
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
41
|
requirements:
|
68
42
|
- - "~>"
|
69
43
|
- !ruby/object:Gem::Version
|
@@ -71,7 +45,6 @@ dependencies:
|
|
71
45
|
- !ruby/object:Gem::Dependency
|
72
46
|
name: equalizer
|
73
47
|
requirement: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
48
|
requirements:
|
76
49
|
- - "~>"
|
77
50
|
- !ruby/object:Gem::Version
|
@@ -79,7 +52,6 @@ dependencies:
|
|
79
52
|
type: :runtime
|
80
53
|
prerelease: false
|
81
54
|
version_requirements: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
55
|
requirements:
|
84
56
|
- - "~>"
|
85
57
|
- !ruby/object:Gem::Version
|
@@ -87,7 +59,6 @@ dependencies:
|
|
87
59
|
- !ruby/object:Gem::Dependency
|
88
60
|
name: faraday
|
89
61
|
requirement: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
62
|
requirements:
|
92
63
|
- - "~>"
|
93
64
|
- !ruby/object:Gem::Version
|
@@ -95,7 +66,6 @@ dependencies:
|
|
95
66
|
type: :runtime
|
96
67
|
prerelease: false
|
97
68
|
version_requirements: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
69
|
requirements:
|
100
70
|
- - "~>"
|
101
71
|
- !ruby/object:Gem::Version
|
@@ -103,7 +73,6 @@ dependencies:
|
|
103
73
|
- !ruby/object:Gem::Dependency
|
104
74
|
name: http
|
105
75
|
requirement: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
76
|
requirements:
|
108
77
|
- - "~>"
|
109
78
|
- !ruby/object:Gem::Version
|
@@ -111,7 +80,6 @@ dependencies:
|
|
111
80
|
type: :runtime
|
112
81
|
prerelease: false
|
113
82
|
version_requirements: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
83
|
requirements:
|
116
84
|
- - "~>"
|
117
85
|
- !ruby/object:Gem::Version
|
@@ -119,7 +87,6 @@ dependencies:
|
|
119
87
|
- !ruby/object:Gem::Dependency
|
120
88
|
name: http_parser.rb
|
121
89
|
requirement: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
90
|
requirements:
|
124
91
|
- - "~>"
|
125
92
|
- !ruby/object:Gem::Version
|
@@ -127,7 +94,6 @@ dependencies:
|
|
127
94
|
type: :runtime
|
128
95
|
prerelease: false
|
129
96
|
version_requirements: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
97
|
requirements:
|
132
98
|
- - "~>"
|
133
99
|
- !ruby/object:Gem::Version
|
@@ -135,7 +101,6 @@ dependencies:
|
|
135
101
|
- !ruby/object:Gem::Dependency
|
136
102
|
name: json
|
137
103
|
requirement: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
104
|
requirements:
|
140
105
|
- - "~>"
|
141
106
|
- !ruby/object:Gem::Version
|
@@ -143,7 +108,6 @@ dependencies:
|
|
143
108
|
type: :runtime
|
144
109
|
prerelease: false
|
145
110
|
version_requirements: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
111
|
requirements:
|
148
112
|
- - "~>"
|
149
113
|
- !ruby/object:Gem::Version
|
@@ -151,7 +115,6 @@ dependencies:
|
|
151
115
|
- !ruby/object:Gem::Dependency
|
152
116
|
name: memoizable
|
153
117
|
requirement: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
118
|
requirements:
|
156
119
|
- - "~>"
|
157
120
|
- !ruby/object:Gem::Version
|
@@ -159,7 +122,6 @@ dependencies:
|
|
159
122
|
type: :runtime
|
160
123
|
prerelease: false
|
161
124
|
version_requirements: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
125
|
requirements:
|
164
126
|
- - "~>"
|
165
127
|
- !ruby/object:Gem::Version
|
@@ -167,7 +129,6 @@ dependencies:
|
|
167
129
|
- !ruby/object:Gem::Dependency
|
168
130
|
name: naught
|
169
131
|
requirement: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
132
|
requirements:
|
172
133
|
- - "~>"
|
173
134
|
- !ruby/object:Gem::Version
|
@@ -175,7 +136,6 @@ dependencies:
|
|
175
136
|
type: :runtime
|
176
137
|
prerelease: false
|
177
138
|
version_requirements: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
139
|
requirements:
|
180
140
|
- - "~>"
|
181
141
|
- !ruby/object:Gem::Version
|
@@ -183,7 +143,6 @@ dependencies:
|
|
183
143
|
- !ruby/object:Gem::Dependency
|
184
144
|
name: simple_oauth
|
185
145
|
requirement: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
146
|
requirements:
|
188
147
|
- - "~>"
|
189
148
|
- !ruby/object:Gem::Version
|
@@ -191,7 +150,6 @@ dependencies:
|
|
191
150
|
type: :runtime
|
192
151
|
prerelease: false
|
193
152
|
version_requirements: !ruby/object:Gem::Requirement
|
194
|
-
none: false
|
195
153
|
requirements:
|
196
154
|
- - "~>"
|
197
155
|
- !ruby/object:Gem::Version
|
@@ -199,7 +157,6 @@ dependencies:
|
|
199
157
|
- !ruby/object:Gem::Dependency
|
200
158
|
name: bundler
|
201
159
|
requirement: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
160
|
requirements:
|
204
161
|
- - "~>"
|
205
162
|
- !ruby/object:Gem::Version
|
@@ -207,7 +164,6 @@ dependencies:
|
|
207
164
|
type: :development
|
208
165
|
prerelease: false
|
209
166
|
version_requirements: !ruby/object:Gem::Requirement
|
210
|
-
none: false
|
211
167
|
requirements:
|
212
168
|
- - "~>"
|
213
169
|
- !ruby/object:Gem::Version
|
@@ -225,7 +181,7 @@ files:
|
|
225
181
|
- LICENSE.md
|
226
182
|
- README.md
|
227
183
|
- Rakefile
|
228
|
-
- twitter.
|
184
|
+
- lib/twitter.rb
|
229
185
|
- lib/twitter/arguments.rb
|
230
186
|
- lib/twitter/base.rb
|
231
187
|
- lib/twitter/basic_user.rb
|
@@ -235,17 +191,17 @@ files:
|
|
235
191
|
- lib/twitter/cursor.rb
|
236
192
|
- lib/twitter/direct_message.rb
|
237
193
|
- lib/twitter/entities.rb
|
194
|
+
- lib/twitter/entity.rb
|
238
195
|
- lib/twitter/entity/hashtag.rb
|
239
196
|
- lib/twitter/entity/symbol.rb
|
240
197
|
- lib/twitter/entity/uri.rb
|
241
198
|
- lib/twitter/entity/user_mention.rb
|
242
|
-
- lib/twitter/entity.rb
|
243
199
|
- lib/twitter/enumerable.rb
|
244
200
|
- lib/twitter/error.rb
|
245
201
|
- lib/twitter/factory.rb
|
202
|
+
- lib/twitter/geo.rb
|
246
203
|
- lib/twitter/geo/point.rb
|
247
204
|
- lib/twitter/geo/polygon.rb
|
248
|
-
- lib/twitter/geo.rb
|
249
205
|
- lib/twitter/geo_factory.rb
|
250
206
|
- lib/twitter/geo_results.rb
|
251
207
|
- lib/twitter/identity.rb
|
@@ -307,7 +263,6 @@ files:
|
|
307
263
|
- lib/twitter/user.rb
|
308
264
|
- lib/twitter/utils.rb
|
309
265
|
- lib/twitter/version.rb
|
310
|
-
- lib/twitter.rb
|
311
266
|
- spec/fixtures/already_favorited.json
|
312
267
|
- spec/fixtures/already_posted.json
|
313
268
|
- spec/fixtures/already_retweeted.json
|
@@ -429,33 +384,30 @@ files:
|
|
429
384
|
- spec/twitter/trend_spec.rb
|
430
385
|
- spec/twitter/tweet_spec.rb
|
431
386
|
- spec/twitter/user_spec.rb
|
387
|
+
- twitter.gemspec
|
432
388
|
homepage: http://sferik.github.com/twitter/
|
433
389
|
licenses:
|
434
390
|
- MIT
|
391
|
+
metadata: {}
|
435
392
|
post_install_message:
|
436
393
|
rdoc_options: []
|
437
394
|
require_paths:
|
438
395
|
- lib
|
439
396
|
required_ruby_version: !ruby/object:Gem::Requirement
|
440
|
-
none: false
|
441
397
|
requirements:
|
442
398
|
- - ">="
|
443
399
|
- !ruby/object:Gem::Version
|
444
400
|
version: '0'
|
445
|
-
segments:
|
446
|
-
- 0
|
447
|
-
hash: 266574229408676669
|
448
401
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
449
|
-
none: false
|
450
402
|
requirements:
|
451
403
|
- - ">="
|
452
404
|
- !ruby/object:Gem::Version
|
453
405
|
version: 1.3.5
|
454
406
|
requirements: []
|
455
407
|
rubyforge_project:
|
456
|
-
rubygems_version:
|
408
|
+
rubygems_version: 2.2.2
|
457
409
|
signing_key:
|
458
|
-
specification_version:
|
410
|
+
specification_version: 4
|
459
411
|
summary: A Ruby interface to the Twitter API.
|
460
412
|
test_files:
|
461
413
|
- spec/fixtures/already_favorited.json
|
data.tar.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{j-s�g��^��)�:�ğKF����ie��AHL*�z���v�� V��$�5����*��(��H�V��M�!�(��H�yYR:^��u=M&硛;���r(7J�A��{1�=<�h�Qi{� �~��?")
|
metadata.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
Gt�Be�\3l��Č̲�@�>��3��T�f;bb�2��^xΎ*��������!��`˛��q�P���da�N�7�����A)��.�:f{Un��X�N��l��#���~�s��դQܙN��l���y�X%��W3��2���<�������HL��=~�ml���5$C��3�J�:g
|