twitter 5.7.1 → 5.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 Version](
|
4
|
-
[![Build Status](
|
5
|
-
[![Dependency Status](
|
6
|
-
[![Code Climate](
|
7
|
-
[![Coverage Status](
|
8
|
-
[![Gittip](http://img.shields.io/gittip/gems.
|
3
|
+
[![Gem Version](http://img.shields.io/gem/v/twitter.svg)][gem]
|
4
|
+
[![Build Status](http://img.shields.io/travis/sferik/twitter.svg)][travis]
|
5
|
+
[![Dependency Status](http://img.shields.io/gemnasium/sferik/twitter.svg)][gemnasium]
|
6
|
+
[![Code Climate](http://img.shields.io/codeclimate/github/sferik/twitter.svg)][codeclimate]
|
7
|
+
[![Coverage Status](http://img.shields.io/coveralls/sferik/twitter.svg)][coveralls]
|
8
|
+
[![Gittip](http://img.shields.io/gittip/gems.svg)][gittip]
|
9
|
+
[![Inline docs](http://inch-pages.github.io/github/sferik/twitter.png)][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
|