twitter 6.1.0 → 6.2.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.
Files changed (54) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +22 -15
  3. data/README.md +69 -394
  4. data/lib/twitter/base.rb +2 -16
  5. data/lib/twitter/basic_user.rb +0 -3
  6. data/lib/twitter/client.rb +5 -19
  7. data/lib/twitter/configuration.rb +3 -2
  8. data/lib/twitter/creatable.rb +1 -1
  9. data/lib/twitter/cursor.rb +0 -1
  10. data/lib/twitter/entity/uri.rb +0 -4
  11. data/lib/twitter/error.rb +81 -96
  12. data/lib/twitter/geo_results.rb +0 -1
  13. data/lib/twitter/headers.rb +11 -10
  14. data/lib/twitter/media/photo.rb +4 -0
  15. data/lib/twitter/media/video.rb +4 -1
  16. data/lib/twitter/media/video_info.rb +1 -1
  17. data/lib/twitter/null_object.rb +2 -2
  18. data/lib/twitter/profile.rb +3 -2
  19. data/lib/twitter/rate_limit.rb +1 -1
  20. data/lib/twitter/rest/api.rb +0 -2
  21. data/lib/twitter/rest/client.rb +0 -78
  22. data/lib/twitter/rest/direct_messages.rb +3 -3
  23. data/lib/twitter/rest/favorites.rb +25 -4
  24. data/lib/twitter/rest/friends_and_followers.rb +1 -3
  25. data/lib/twitter/rest/lists.rb +18 -29
  26. data/lib/twitter/rest/oauth.rb +15 -15
  27. data/lib/twitter/rest/request.rb +105 -16
  28. data/lib/twitter/rest/saved_searches.rb +0 -2
  29. data/lib/twitter/rest/search.rb +2 -0
  30. data/lib/twitter/rest/trends.rb +1 -0
  31. data/lib/twitter/rest/tweets.rb +80 -15
  32. data/lib/twitter/rest/undocumented.rb +3 -4
  33. data/lib/twitter/rest/users.rb +20 -34
  34. data/lib/twitter/rest/utils.rb +13 -20
  35. data/lib/twitter/search_results.rb +1 -2
  36. data/lib/twitter/streaming/client.rb +17 -23
  37. data/lib/twitter/streaming/connection.rb +23 -10
  38. data/lib/twitter/streaming/deleted_tweet.rb +0 -1
  39. data/lib/twitter/streaming/event.rb +6 -6
  40. data/lib/twitter/streaming/message_parser.rb +1 -1
  41. data/lib/twitter/streaming/response.rb +2 -2
  42. data/lib/twitter/trend_results.rb +1 -2
  43. data/lib/twitter/tweet.rb +1 -5
  44. data/lib/twitter/user.rb +0 -2
  45. data/lib/twitter/utils.rb +1 -16
  46. data/lib/twitter/version.rb +1 -1
  47. data/twitter.gemspec +13 -13
  48. metadata +35 -27
  49. data/lib/twitter/rest/media.rb +0 -30
  50. data/lib/twitter/rest/request/multipart_with_file.rb +0 -47
  51. data/lib/twitter/rest/response/parse_error_json.rb +0 -13
  52. data/lib/twitter/rest/response/parse_json.rb +0 -31
  53. data/lib/twitter/rest/response/raise_error.rb +0 -32
  54. data/lib/twitter/token.rb +0 -20
@@ -4,12 +4,12 @@ require 'twitter/cursor'
4
4
  require 'twitter/rest/request'
5
5
  require 'twitter/user'
6
6
  require 'twitter/utils'
7
+ require 'uri'
7
8
 
8
9
  module Twitter
9
10
  module REST
10
11
  module Utils
11
12
  include Twitter::Utils
12
- URI_SUBSTRING = '://'.freeze
13
13
  DEFAULT_CURSOR = -1
14
14
 
15
15
  private
@@ -24,7 +24,7 @@ module Twitter
24
24
  object
25
25
  when ::String
26
26
  object.split('/').last.to_i
27
- when URI
27
+ when URI, Addressable::URI
28
28
  object.path.split('/').last.to_i
29
29
  when Twitter::Identity
30
30
  object.id
@@ -193,11 +193,7 @@ module Twitter
193
193
  when Integer
194
194
  set_compound_key('user_id', user, hash, prefix)
195
195
  when String
196
- if user[URI_SUBSTRING]
197
- set_compound_key('screen_name', user.split('/').last, hash, prefix)
198
- else
199
- set_compound_key('screen_name', user, hash, prefix)
200
- end
196
+ set_compound_key('screen_name', user, hash, prefix)
201
197
  when URI, Addressable::URI
202
198
  set_compound_key('screen_name', user.path.split('/').last, hash, prefix)
203
199
  when Twitter::User
@@ -217,7 +213,9 @@ module Twitter
217
213
  # @param users [Enumerable<Integer, String, Twitter::User>] A collection of Twitter user IDs, screen_names, or objects.
218
214
  # @return [Hash]
219
215
  def merge_users(hash, users)
220
- merge_users!(hash.dup, users)
216
+ copy = hash.dup
217
+ merge_users!(copy, users)
218
+ copy
221
219
  end
222
220
 
223
221
  # Take a multiple users and merge them into the hash with the correct keys
@@ -226,25 +224,20 @@ module Twitter
226
224
  # @param users [Enumerable<Integer, String, URI, Twitter::User>] A collection of Twitter user IDs, screen_names, URIs, or objects.
227
225
  # @return [Hash]
228
226
  def merge_users!(hash, users)
229
- user_ids, screen_names = collect_user_ids_and_screen_names(users)
227
+ user_ids, screen_names = collect_users(users)
230
228
  hash[:user_id] = user_ids.join(',') unless user_ids.empty?
231
229
  hash[:screen_name] = screen_names.join(',') unless screen_names.empty?
232
- hash
233
230
  end
234
231
 
235
- def collect_user_ids_and_screen_names(users)
232
+ def collect_users(users) # rubocop:disable MethodLength
236
233
  user_ids = []
237
234
  screen_names = []
238
- users.flatten.each do |user|
235
+ users.each do |user|
239
236
  case user
240
- when Integer
241
- user_ids << user
242
- when String
243
- screen_names << (user[URI_SUBSTRING] ? user.split('/').last : user)
244
- when URI
245
- screen_names << user.path.split('/').last
246
- when Twitter::User
247
- user_ids << user.id
237
+ when Integer then user_ids << user
238
+ when Twitter::User then user_ids << user.id
239
+ when String then screen_names << user
240
+ when URI, Addressable::URI then screen_names << user.path.split('/').last
248
241
  end
249
242
  end
250
243
  [user_ids, screen_names]
@@ -12,7 +12,6 @@ module Twitter
12
12
  attr_reader :attrs
13
13
  alias to_h attrs
14
14
  alias to_hash to_h
15
- deprecate_alias :to_hsh, :to_hash
16
15
 
17
16
  # Initializes a new SearchResults object
18
17
  #
@@ -49,7 +48,7 @@ module Twitter
49
48
 
50
49
  # @return [Hash]
51
50
  def fetch_next_page
52
- response = Twitter::REST::Request.new(@client, @request_method, @path, next_page).perform
51
+ response = Twitter::REST::Request.new(@client, @request_method, @path, @options.merge(next_page)).perform
53
52
  self.attrs = response
54
53
  end
55
54
 
@@ -3,14 +3,15 @@ require 'twitter/arguments'
3
3
  require 'twitter/client'
4
4
  require 'twitter/headers'
5
5
  require 'twitter/streaming/connection'
6
- require 'twitter/streaming/response'
7
6
  require 'twitter/streaming/message_parser'
7
+ require 'twitter/streaming/response'
8
+ require 'twitter/utils'
8
9
 
9
10
  module Twitter
10
11
  module Streaming
11
12
  class Client < Twitter::Client
13
+ include Twitter::Utils
12
14
  attr_writer :connection
13
- attr_accessor :tcp_socket_class, :ssl_socket_class
14
15
 
15
16
  # Initializes a new Client object
16
17
  #
@@ -108,9 +109,8 @@ module Twitter
108
109
 
109
110
  def request(method, uri, params)
110
111
  before_request.call
111
- authorization = Twitter::Headers.new(self, method, uri, params).oauth_auth_header.to_s
112
- headers = default_headers.merge(authorization: authorization)
113
- request = HTTP::Request.new(verb: method, uri: uri + '?' + to_url_params(params), headers: headers)
112
+ headers = Twitter::Headers.new(self, method, uri, params).request_headers
113
+ request = HTTP::Request.new(verb: method, uri: uri + '?' + to_url_params(params), headers: headers, proxy: proxy)
114
114
  response = Streaming::Response.new do |data|
115
115
  if item = Streaming::MessageParser.parse(data) # rubocop:disable AssignmentInCondition
116
116
  yield(item)
@@ -120,29 +120,23 @@ module Twitter
120
120
  end
121
121
 
122
122
  def to_url_params(params)
123
- params.collect do |param, value|
124
- [param, URI.encode(value)].join('=')
125
- end.sort.join('&')
126
- end
127
-
128
- def default_headers
129
- @default_headers ||= {
130
- accept: '*/*',
131
- user_agent: user_agent,
132
- }
123
+ uri = Addressable::URI.new
124
+ uri.query_values = params
125
+ uri.query
133
126
  end
134
127
 
128
+ # Takes a mixed array of Integers and Twitter::User objects and returns a
129
+ # consistent array of Twitter user IDs.
130
+ #
131
+ # @param users [Array]
132
+ # @return [Array<Integer>]
135
133
  def collect_user_ids(users)
136
- user_ids = []
137
- users.flatten.each do |user|
134
+ users.collect do |user|
138
135
  case user
139
- when Integer
140
- user_ids << user
141
- when Twitter::User
142
- user_ids << user.id
136
+ when Integer then user
137
+ when Twitter::User then user.id
143
138
  end
144
- end
145
- user_ids
139
+ end.compact
146
140
  end
147
141
  end
148
142
  end
@@ -5,22 +5,35 @@ require 'resolv'
5
5
  module Twitter
6
6
  module Streaming
7
7
  class Connection
8
- def initialize(opts = {})
9
- @tcp_socket_class = opts.fetch(:tcp_socket_class) { TCPSocket }
10
- @ssl_socket_class = opts.fetch(:ssl_socket_class) { OpenSSL::SSL::SSLSocket }
11
- end
12
8
  attr_reader :tcp_socket_class, :ssl_socket_class
13
9
 
10
+ def initialize(options = {})
11
+ @tcp_socket_class = options.fetch(:tcp_socket_class) { TCPSocket }
12
+ @ssl_socket_class = options.fetch(:ssl_socket_class) { OpenSSL::SSL::SSLSocket }
13
+ @using_ssl = options.fetch(:using_ssl) { false }
14
+ end
15
+
14
16
  def stream(request, response)
17
+ client = connect(request)
18
+ request.stream(client)
19
+ while body = client.readpartial(1024) # rubocop:disable AssignmentInCondition
20
+ response << body
21
+ end
22
+ end
23
+
24
+ def connect(request)
25
+ client = new_tcp_socket(request.socket_host, request.socket_port)
26
+ return client if !@using_ssl && request.using_proxy?
27
+
15
28
  client_context = OpenSSL::SSL::SSLContext.new
16
- client = @tcp_socket_class.new(Resolv.getaddress(request.socket_host), request.socket_port)
17
29
  ssl_client = @ssl_socket_class.new(client, client_context)
18
-
19
30
  ssl_client.connect
20
- request.stream(ssl_client)
21
- while body = ssl_client.readpartial(1024) # rubocop:disable AssignmentInCondition
22
- response << body
23
- end
31
+ end
32
+
33
+ private
34
+
35
+ def new_tcp_socket(host, port)
36
+ @tcp_socket_class.new(Resolv.getaddress(host), port)
24
37
  end
25
38
  end
26
39
  end
@@ -4,6 +4,5 @@ module Twitter
4
4
  # @return [Integer]
5
5
  attr_reader :user_id
6
6
  end
7
- DeletedStatus = DeletedTweet
8
7
  end
9
8
  end
@@ -1,14 +1,14 @@
1
1
  module Twitter
2
2
  module Streaming
3
3
  class Event
4
- LIST_EVENTS = [
5
- :list_created, :list_destroyed, :list_updated, :list_member_added,
6
- :list_member_added, :list_member_removed, :list_user_subscribed,
7
- :list_user_subscribed, :list_user_unsubscribed, :list_user_unsubscribed
4
+ LIST_EVENTS = %i[
5
+ list_created list_destroyed list_updated list_member_added
6
+ list_member_added list_member_removed list_user_subscribed
7
+ list_user_subscribed list_user_unsubscribed list_user_unsubscribed
8
8
  ].freeze
9
9
 
10
- TWEET_EVENTS = [
11
- :favorite, :unfavorite, :quoted_tweet
10
+ TWEET_EVENTS = %i[
11
+ favorite unfavorite quoted_tweet
12
12
  ].freeze
13
13
 
14
14
  attr_reader :name, :source, :target, :target_object
@@ -8,7 +8,7 @@ require 'twitter/tweet'
8
8
  module Twitter
9
9
  module Streaming
10
10
  class MessageParser
11
- def self.parse(data) # rubocop:disable CyclomaticComplexity, PerceivedComplexity
11
+ def self.parse(data) # rubocop:disable AbcSize, CyclomaticComplexity, MethodLength, PerceivedComplexity
12
12
  if data[:id]
13
13
  Tweet.new(data)
14
14
  elsif data[:event]
@@ -20,8 +20,8 @@ module Twitter
20
20
  end
21
21
 
22
22
  def on_headers_complete(_headers)
23
- error = Twitter::Error.errors[@parser.status_code]
24
- raise error.new if error
23
+ error = Twitter::Error::ERRORS[@parser.status_code]
24
+ raise error if error
25
25
  end
26
26
 
27
27
  def on_body(data)
@@ -14,7 +14,6 @@ module Twitter
14
14
  attr_reader :attrs
15
15
  alias to_h attrs
16
16
  alias to_hash to_h
17
- deprecate_alias :to_hsh, :to_hash
18
17
 
19
18
  # Initializes a new TrendResults object
20
19
  #
@@ -31,7 +30,7 @@ module Twitter
31
30
  #
32
31
  # @return [Time]
33
32
  def as_of
34
- Time.parse(@attrs[:as_of]) unless @attrs[:as_of].nil?
33
+ Time.parse(@attrs[:as_of]).utc unless @attrs[:as_of].nil?
35
34
  end
36
35
  memoize :as_of
37
36
 
@@ -11,11 +11,8 @@ module Twitter
11
11
  # @return [Integer]
12
12
  attr_reader :favorite_count, :in_reply_to_status_id, :in_reply_to_user_id,
13
13
  :retweet_count
14
- deprecate_alias :favorites_count, :favorite_count
15
- deprecate_alias :favoriters_count, :favorite_count
16
14
  alias in_reply_to_tweet_id in_reply_to_status_id
17
15
  alias reply? in_reply_to_user_id?
18
- deprecate_alias :retweeters_count, :retweet_count
19
16
  object_attr_reader :GeoFactory, :geo
20
17
  object_attr_reader :Metadata, :metadata
21
18
  object_attr_reader :Place, :place
@@ -32,7 +29,7 @@ module Twitter
32
29
  predicate_attr_reader :favorited, :possibly_sensitive, :retweeted,
33
30
  :truncated
34
31
 
35
- # @note May be > 140 characters.
32
+ # @note May be > 280 characters.
36
33
  # @return [String]
37
34
  def full_text
38
35
  if retweet?
@@ -51,5 +48,4 @@ module Twitter
51
48
  memoize :uri
52
49
  alias url uri
53
50
  end
54
- Status = Tweet
55
51
  end
@@ -1,5 +1,4 @@
1
1
  require 'addressable/uri'
2
- require 'memoizable'
3
2
  require 'twitter/basic_user'
4
3
  require 'twitter/creatable'
5
4
  require 'twitter/entity/uri'
@@ -9,7 +8,6 @@ module Twitter
9
8
  class User < Twitter::BasicUser
10
9
  include Twitter::Creatable
11
10
  include Twitter::Profile
12
- include Memoizable
13
11
  # @return [Array]
14
12
  attr_reader :connections
15
13
  # @return [Integer]
@@ -1,19 +1,6 @@
1
1
  module Twitter
2
2
  module Utils
3
- class << self
4
- def included(base)
5
- base.extend(ClassMethods)
6
- end
7
- end
8
-
9
- module ClassMethods
10
- def deprecate_alias(new_name, old_name, &block)
11
- define_method(new_name) do |*args|
12
- warn "#{Kernel.caller.first}: [DEPRECATION] ##{new_name} is deprecated. Use ##{old_name} instead."
13
- send(old_name, *args, &block)
14
- end
15
- end
16
- end
3
+ module_function
17
4
 
18
5
  # Returns a new array with the concatenated results of running block once for every element in enumerable.
19
6
  # If no block is given, an enumerator is returned instead.
@@ -24,7 +11,6 @@ module Twitter
24
11
  return to_enum(:flat_pmap, enumerable) unless block_given?
25
12
  pmap(enumerable, &Proc.new).flatten(1)
26
13
  end
27
- module_function :flat_pmap
28
14
 
29
15
  # Returns a new array with the results of running block once for every element in enumerable.
30
16
  # If no block is given, an enumerator is returned instead.
@@ -39,6 +25,5 @@ module Twitter
39
25
  enumerable.collect { |object| Thread.new { yield(object) } }.collect(&:value)
40
26
  end
41
27
  end
42
- module_function :pmap
43
28
  end
44
29
  end
@@ -9,7 +9,7 @@ module Twitter
9
9
 
10
10
  # @return [Integer]
11
11
  def minor
12
- 1
12
+ 2
13
13
  end
14
14
 
15
15
  # @return [Integer]
@@ -3,26 +3,26 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
  require 'twitter/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.add_dependency 'addressable', '~> 2.5'
6
+ spec.add_dependency 'addressable', '~> 2.3'
7
7
  spec.add_dependency 'buftok', '~> 0.2.0'
8
- spec.add_dependency 'equalizer', '0.0.11'
9
- spec.add_dependency 'faraday', '~> 0.11.0'
10
- spec.add_dependency 'http', '~> 2.1'
8
+ spec.add_dependency 'equalizer', '~> 0.0.11'
9
+ spec.add_dependency 'http', '~> 3.0'
10
+ spec.add_dependency 'http-form_data', '~> 2.0'
11
11
  spec.add_dependency 'http_parser.rb', '~> 0.6.0'
12
- spec.add_dependency 'memoizable', '~> 0.4.2'
13
- spec.add_dependency 'naught', '~> 1.1'
14
- spec.add_dependency 'simple_oauth', '~> 0.3.1'
12
+ spec.add_dependency 'memoizable', '~> 0.4.0'
13
+ spec.add_dependency 'multipart-post', '~> 2.0'
14
+ spec.add_dependency 'naught', '~> 1.0'
15
+ spec.add_dependency 'simple_oauth', '~> 0.3.0'
15
16
  spec.add_development_dependency 'bundler', '~> 1.0'
16
17
  spec.authors = ['Erik Michaels-Ober', 'John Nunemaker', 'Wynn Netherland', 'Steve Richert', 'Steve Agalloco']
17
18
  spec.description = 'A Ruby interface to the Twitter API.'
18
- spec.email = %w(sferik@gmail.com)
19
- spec.files = %w(.yardopts CHANGELOG.md CONTRIBUTING.md LICENSE.md README.md twitter.gemspec) + Dir['lib/**/*.rb']
19
+ spec.email = %w[sferik@gmail.com]
20
+ spec.files = %w[.yardopts CHANGELOG.md CONTRIBUTING.md LICENSE.md README.md twitter.gemspec] + Dir['lib/**/*.rb']
20
21
  spec.homepage = 'http://sferik.github.com/twitter/'
21
- spec.licenses = %w(MIT)
22
+ spec.licenses = %w[MIT]
22
23
  spec.name = 'twitter'
23
- spec.require_paths = %w(lib)
24
- spec.required_ruby_version = '>= 2'
25
- spec.required_rubygems_version = '>= 1.3.5'
24
+ spec.require_paths = %w[lib]
25
+ spec.required_ruby_version = '>= 1.9.3'
26
26
  spec.summary = spec.description
27
27
  spec.version = Twitter::Version
28
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.0
4
+ version: 6.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Michaels-Ober
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2017-01-14 00:00:00.000000000 Z
15
+ date: 2017-11-08 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: addressable
@@ -20,14 +20,14 @@ dependencies:
20
20
  requirements:
21
21
  - - "~>"
22
22
  - !ruby/object:Gem::Version
23
- version: '2.5'
23
+ version: '2.3'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - "~>"
29
29
  - !ruby/object:Gem::Version
30
- version: '2.5'
30
+ version: '2.3'
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: buftok
33
33
  requirement: !ruby/object:Gem::Requirement
@@ -46,44 +46,44 @@ dependencies:
46
46
  name: equalizer
47
47
  requirement: !ruby/object:Gem::Requirement
48
48
  requirements:
49
- - - '='
49
+ - - "~>"
50
50
  - !ruby/object:Gem::Version
51
51
  version: 0.0.11
52
52
  type: :runtime
53
53
  prerelease: false
54
54
  version_requirements: !ruby/object:Gem::Requirement
55
55
  requirements:
56
- - - '='
56
+ - - "~>"
57
57
  - !ruby/object:Gem::Version
58
58
  version: 0.0.11
59
59
  - !ruby/object:Gem::Dependency
60
- name: faraday
60
+ name: http
61
61
  requirement: !ruby/object:Gem::Requirement
62
62
  requirements:
63
63
  - - "~>"
64
64
  - !ruby/object:Gem::Version
65
- version: 0.11.0
65
+ version: '3.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
70
  - - "~>"
71
71
  - !ruby/object:Gem::Version
72
- version: 0.11.0
72
+ version: '3.0'
73
73
  - !ruby/object:Gem::Dependency
74
- name: http
74
+ name: http-form_data
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '2.1'
79
+ version: '2.0'
80
80
  type: :runtime
81
81
  prerelease: false
82
82
  version_requirements: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
- version: '2.1'
86
+ version: '2.0'
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: http_parser.rb
89
89
  requirement: !ruby/object:Gem::Requirement
@@ -104,42 +104,56 @@ dependencies:
104
104
  requirements:
105
105
  - - "~>"
106
106
  - !ruby/object:Gem::Version
107
- version: 0.4.2
107
+ version: 0.4.0
108
108
  type: :runtime
109
109
  prerelease: false
110
110
  version_requirements: !ruby/object:Gem::Requirement
111
111
  requirements:
112
112
  - - "~>"
113
113
  - !ruby/object:Gem::Version
114
- version: 0.4.2
114
+ version: 0.4.0
115
+ - !ruby/object:Gem::Dependency
116
+ name: multipart-post
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '2.0'
122
+ type: :runtime
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '2.0'
115
129
  - !ruby/object:Gem::Dependency
116
130
  name: naught
117
131
  requirement: !ruby/object:Gem::Requirement
118
132
  requirements:
119
133
  - - "~>"
120
134
  - !ruby/object:Gem::Version
121
- version: '1.1'
135
+ version: '1.0'
122
136
  type: :runtime
123
137
  prerelease: false
124
138
  version_requirements: !ruby/object:Gem::Requirement
125
139
  requirements:
126
140
  - - "~>"
127
141
  - !ruby/object:Gem::Version
128
- version: '1.1'
142
+ version: '1.0'
129
143
  - !ruby/object:Gem::Dependency
130
144
  name: simple_oauth
131
145
  requirement: !ruby/object:Gem::Requirement
132
146
  requirements:
133
147
  - - "~>"
134
148
  - !ruby/object:Gem::Version
135
- version: 0.3.1
149
+ version: 0.3.0
136
150
  type: :runtime
137
151
  prerelease: false
138
152
  version_requirements: !ruby/object:Gem::Requirement
139
153
  requirements:
140
154
  - - "~>"
141
155
  - !ruby/object:Gem::Version
142
- version: 0.3.1
156
+ version: 0.3.0
143
157
  - !ruby/object:Gem::Dependency
144
158
  name: bundler
145
159
  requirement: !ruby/object:Gem::Requirement
@@ -213,14 +227,9 @@ files:
213
227
  - lib/twitter/rest/friends_and_followers.rb
214
228
  - lib/twitter/rest/help.rb
215
229
  - lib/twitter/rest/lists.rb
216
- - lib/twitter/rest/media.rb
217
230
  - lib/twitter/rest/oauth.rb
218
231
  - lib/twitter/rest/places_and_geo.rb
219
232
  - lib/twitter/rest/request.rb
220
- - lib/twitter/rest/request/multipart_with_file.rb
221
- - lib/twitter/rest/response/parse_error_json.rb
222
- - lib/twitter/rest/response/parse_json.rb
223
- - lib/twitter/rest/response/raise_error.rb
224
233
  - lib/twitter/rest/saved_searches.rb
225
234
  - lib/twitter/rest/search.rb
226
235
  - lib/twitter/rest/spam_reporting.rb
@@ -246,7 +255,6 @@ files:
246
255
  - lib/twitter/streaming/stall_warning.rb
247
256
  - lib/twitter/suggestion.rb
248
257
  - lib/twitter/target_user.rb
249
- - lib/twitter/token.rb
250
258
  - lib/twitter/trend.rb
251
259
  - lib/twitter/trend_results.rb
252
260
  - lib/twitter/tweet.rb
@@ -267,15 +275,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
267
275
  requirements:
268
276
  - - ">="
269
277
  - !ruby/object:Gem::Version
270
- version: '2'
278
+ version: 1.9.3
271
279
  required_rubygems_version: !ruby/object:Gem::Requirement
272
280
  requirements:
273
281
  - - ">="
274
282
  - !ruby/object:Gem::Version
275
- version: 1.3.5
283
+ version: '0'
276
284
  requirements: []
277
285
  rubyforge_project:
278
- rubygems_version: 2.5.2
286
+ rubygems_version: 2.7.2
279
287
  signing_key:
280
288
  specification_version: 4
281
289
  summary: A Ruby interface to the Twitter API.