twitter 5.7.1 → 5.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -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](https://badge.fury.io/rb/twitter.png)][gem]
4
- [![Build Status](https://secure.travis-ci.org/sferik/twitter.png?branch=master)][travis]
5
- [![Dependency Status](https://gemnasium.com/sferik/twitter.png?travis)][gemnasium]
6
- [![Code Climate](https://codeclimate.com/github/sferik/twitter.png)][codeclimate]
7
- [![Coverage Status](https://coveralls.io/repos/sferik/twitter/badge.png?branch=master)][coveralls]
8
- [![Gittip](http://img.shields.io/gittip/gems.png)][gittip]
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
@@ -31,7 +31,7 @@ end
31
31
 
32
32
  require 'yardstick/rake/verify'
33
33
  Yardstick::Rake::Verify.new do |verify|
34
- verify.threshold = 59.7
34
+ verify.threshold = 59.5
35
35
  end
36
36
 
37
37
  task :default => [:spec, :rubocop, :verify_measurements]
@@ -21,7 +21,7 @@ module Twitter
21
21
  options.each do |key, value|
22
22
  send(:"#{key}=", value)
23
23
  end
24
- yield self if block_given?
24
+ yield(self) if block_given?
25
25
  validate_credential_type!
26
26
  end
27
27
 
@@ -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 element
9
+ yield(element)
10
10
  end
11
11
  unless last?
12
12
  start = [@collection.size, start].max
@@ -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 = 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
- UNABLE_TO_VERIFY_CREDENTIALS = 99
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
@@ -18,26 +18,22 @@ require 'twitter/rest/users'
18
18
  module Twitter
19
19
  module REST
20
20
  module API
21
- [
22
- Twitter::REST::DirectMessages,
23
- Twitter::REST::Favorites,
24
- Twitter::REST::FriendsAndFollowers,
25
- Twitter::REST::Help,
26
- Twitter::REST::Lists,
27
- Twitter::REST::OAuth,
28
- Twitter::REST::PlacesAndGeo,
29
- Twitter::REST::SavedSearches,
30
- Twitter::REST::Search,
31
- Twitter::REST::SpamReporting,
32
- Twitter::REST::SuggestedUsers,
33
- Twitter::REST::Timelines,
34
- Twitter::REST::Trends,
35
- Twitter::REST::Tweets,
36
- Twitter::REST::Undocumented,
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
@@ -90,7 +90,7 @@ module Twitter
90
90
  if arguments.empty?
91
91
  direct_messages_received(arguments.options)
92
92
  else
93
- parallel_map(arguments) do |id|
93
+ pmap(arguments) do |id|
94
94
  direct_message(id, arguments.options)
95
95
  end
96
96
  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
- parallel_map(arguments) do |tweet|
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
- parallel_map(arguments) do |tweet|
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
- parallel_map(arguments) do |user|
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
@@ -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
- parallel_map(members.flatten.each_slice(MAX_USERS_PER_REQUEST)) do |users|
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
- parallel_map(arguments) do |id|
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
- parallel_map(arguments) do |id|
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
@@ -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
- parallel_map(arguments) do |tweet|
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
- parallel_map(arguments) do |tweet|
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
- parallel_map(arguments) do |tweet|
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
- parallel_map(arguments) do |tweet|
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
- retweeted_status = response.delete(:retweeted_status)
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
@@ -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
- parallel_map(arguments.each_slice(MAX_USERS_PER_REQUEST)) do |users|
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.flatten
232
+ end
233
233
  end
234
234
 
235
235
  # @see https://dev.twitter.com/docs/api/1.1/get/users/show
@@ -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
- parallel_map(arguments) do |user|
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
- parallel_map(arguments) do |object|
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
@@ -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?, :in_reply_to_status_id?
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?
@@ -15,14 +15,42 @@ module Twitter
15
15
  end
16
16
  end
17
17
 
18
- def parallel_map(enumerable)
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 object }
49
+ enumerable.collect { |object| yield(object, 0) }
22
50
  else
23
- enumerable.collect { |object| Thread.new { yield object } }.collect(&:value)
51
+ enumerable.each_with_index.collect { |object, index| Thread.new { yield(object, index) } }.collect(&:value)
24
52
  end
25
53
  end
26
- module_function :parallel_map
54
+ module_function :pmap_with_index
27
55
  end
28
56
  end
@@ -1,8 +1,8 @@
1
1
  module Twitter
2
2
  class Version
3
3
  MAJOR = 5
4
- MINOR = 7
5
- PATCH = 1
4
+ MINOR = 8
5
+ PATCH = 0
6
6
  PRE = nil
7
7
 
8
8
  class << self
@@ -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("RT @gruber: As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush.")
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("RT @gruber: As for the Series, I'm for the Giants. Fuck Texas, fuck Nolan Ryan, fuck George Bush.")
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
@@ -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 be_true
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 be_false
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 be_true
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 be_false
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 status' do
274
- tweet = Twitter::Tweet.new(:id => 28_669_546_014, :in_reply_to_status_id => 114_749_583_439_036_416)
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 in_reply_to_status_id is not set' do
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 be_true
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 be_false
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 be_true
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 be_false
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 be_true
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 be_false
482
+ expect(tweet.user_mentions?).to be false
483
483
  end
484
484
  end
485
485
  end
@@ -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.7.1
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.gemspec
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: 1.8.29
408
+ rubygems_version: 2.2.2
457
409
  signing_key:
458
- specification_version: 3
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