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.
@@ -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