twitter 5.17.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +2 -3
- data/lib/twitter/base.rb +4 -4
- data/lib/twitter/client.rb +5 -5
- data/lib/twitter/configuration.rb +1 -2
- data/lib/twitter/cursor.rb +1 -1
- data/lib/twitter/headers.rb +1 -6
- data/lib/twitter/media/photo.rb +1 -2
- data/lib/twitter/media/video.rb +1 -1
- data/lib/twitter/null_object.rb +3 -4
- data/lib/twitter/profile_banner.rb +1 -2
- data/lib/twitter/rest/client.rb +8 -8
- data/lib/twitter/rest/favorites.rb +2 -2
- data/lib/twitter/rest/lists.rb +1 -1
- data/lib/twitter/rest/oauth.rb +1 -1
- data/lib/twitter/rest/request/multipart_with_file.rb +1 -1
- data/lib/twitter/rest/response/parse_json.rb +2 -2
- data/lib/twitter/rest/response/raise_error.rb +1 -1
- data/lib/twitter/rest/saved_searches.rb +1 -1
- data/lib/twitter/rest/search.rb +1 -1
- data/lib/twitter/rest/tweets.rb +3 -3
- data/lib/twitter/rest/undocumented.rb +1 -1
- data/lib/twitter/rest/users.rb +6 -6
- data/lib/twitter/rest/utils.rb +2 -2
- data/lib/twitter/streaming/client.rb +5 -5
- data/lib/twitter/streaming/response.rb +4 -1
- data/lib/twitter/user.rb +2 -2
- data/lib/twitter/version.rb +6 -6
- data/twitter.gemspec +8 -8
- metadata +16 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbb087a2412cc851f5131e470ae8c1cc78e1700a
|
4
|
+
data.tar.gz: e4394c9649f2eca483a9ea15defe046e44961572
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92fcec79f161d87e03b78c4e090a4abb0ef85a3a3ec570f3374dc5a083c815644d92c9585362cfbe3114d1c32ec1704ec59f2db63b3b2dff0d4bb08fdea7adbd
|
7
|
+
data.tar.gz: e9e603a04133351d73e2e53aef78123414990a4439d81cc5ee26534229837f59174ccb8406d68b6bd517981de07a5b247b671020b6436d1450b00a1d6b188672
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
6.0.0
|
2
|
+
-----
|
3
|
+
* [Drop support for Ruby 1.8.7 and Ruby 1.9.3](https://github.com/sferik/twitter/commit/27980f45fb357e34b86e46cb9134d86ed29b3ce3)
|
4
|
+
|
1
5
|
5.17.0
|
2
6
|
------
|
3
7
|
* [Add `email` to `Twitter::User`](https://github.com/sferik/twitter/commit/1d3aebcd0186d36c7c657ec913ac73bfa802d6ff)
|
data/README.md
CHANGED
@@ -556,12 +556,11 @@ command:
|
|
556
556
|
This library aims to support and is [tested against][travis] the following Ruby
|
557
557
|
versions:
|
558
558
|
|
559
|
-
* Ruby 1.8.7
|
560
|
-
* Ruby 1.9.3
|
561
559
|
* Ruby 2.0.0
|
562
560
|
* Ruby 2.1
|
563
561
|
* Ruby 2.2
|
564
|
-
*
|
562
|
+
* Ruby 2.3
|
563
|
+
* JRuby 9.1.6.0
|
565
564
|
|
566
565
|
If something doesn't work on one of these versions, it's a bug.
|
567
566
|
|
data/lib/twitter/base.rb
CHANGED
@@ -72,7 +72,7 @@ module Twitter
|
|
72
72
|
# @param key1 [Symbol]
|
73
73
|
# @param key2 [Symbol]
|
74
74
|
def define_uri_method(key1, key2)
|
75
|
-
define_method(key1) do
|
75
|
+
define_method(key1) do
|
76
76
|
Addressable::URI.parse(@attrs[key2].chomp('#')) unless @attrs[key2].nil?
|
77
77
|
end
|
78
78
|
memoize(key1)
|
@@ -84,7 +84,7 @@ module Twitter
|
|
84
84
|
# @param klass [Symbol]
|
85
85
|
# @param key2 [Symbol]
|
86
86
|
def define_attribute_method(key1, klass = nil, key2 = nil)
|
87
|
-
define_method(key1) do
|
87
|
+
define_method(key1) do
|
88
88
|
if attr_falsey_or_empty?(key1)
|
89
89
|
NullObject.new
|
90
90
|
elsif klass.nil?
|
@@ -99,7 +99,7 @@ module Twitter
|
|
99
99
|
|
100
100
|
# @param key [Symbol]
|
101
101
|
def deprecate_attribute_method(key)
|
102
|
-
define_method(key) do
|
102
|
+
define_method(key) do
|
103
103
|
warn "#{Kernel.caller.first}: [DEPRECATION] ##{key} is deprecated. Use ##{key}? instead."
|
104
104
|
@attrs[key]
|
105
105
|
end
|
@@ -111,7 +111,7 @@ module Twitter
|
|
111
111
|
# @param key1 [Symbol]
|
112
112
|
# @param key2 [Symbol]
|
113
113
|
def define_predicate_method(key1, key2 = key1)
|
114
|
-
define_method(:"#{key1}?") do
|
114
|
+
define_method(:"#{key1}?") do
|
115
115
|
!attr_falsey_or_empty?(key2)
|
116
116
|
end
|
117
117
|
memoize(:"#{key1}?")
|
data/lib/twitter/client.rb
CHANGED
@@ -37,11 +37,11 @@ module Twitter
|
|
37
37
|
# @return [Hash]
|
38
38
|
def credentials
|
39
39
|
{
|
40
|
-
:
|
41
|
-
:
|
42
|
-
:
|
43
|
-
:
|
44
|
-
:
|
40
|
+
consumer_key: consumer_key,
|
41
|
+
consumer_secret: consumer_secret,
|
42
|
+
token: access_token,
|
43
|
+
token_secret: access_token_secret,
|
44
|
+
ignore_extra_keys: true,
|
45
45
|
}
|
46
46
|
end
|
47
47
|
|
@@ -17,9 +17,8 @@ module Twitter
|
|
17
17
|
#
|
18
18
|
# @return [Array<Twitter::Size>]
|
19
19
|
def photo_sizes
|
20
|
-
@attrs.fetch(:photo_sizes, []).
|
20
|
+
@attrs.fetch(:photo_sizes, []).each_with_object({}) do |(key, value), object|
|
21
21
|
object[key] = Size.new(value)
|
22
|
-
object
|
23
22
|
end
|
24
23
|
end
|
25
24
|
memoize :photo_sizes
|
data/lib/twitter/cursor.rb
CHANGED
@@ -44,7 +44,7 @@ module Twitter
|
|
44
44
|
|
45
45
|
# @return [Hash]
|
46
46
|
def fetch_next_page
|
47
|
-
response = Twitter::REST::Request.new(@client, @request_method, @path, @options.merge(:
|
47
|
+
response = Twitter::REST::Request.new(@client, @request_method, @path, @options.merge(cursor: next_cursor)).perform
|
48
48
|
self.attrs = response
|
49
49
|
end
|
50
50
|
|
data/lib/twitter/headers.rb
CHANGED
@@ -50,13 +50,8 @@ module Twitter
|
|
50
50
|
#
|
51
51
|
# @return [String]
|
52
52
|
def bearer_token_credentials_auth_header
|
53
|
-
basic_auth_token = strict_encode64("#{@client.consumer_key}:#{@client.consumer_secret}")
|
53
|
+
basic_auth_token = Base64.strict_encode64("#{@client.consumer_key}:#{@client.consumer_secret}")
|
54
54
|
"Basic #{basic_auth_token}"
|
55
55
|
end
|
56
|
-
|
57
|
-
# Base64.strict_encode64 is not available on Ruby 1.8.7
|
58
|
-
def strict_encode64(str)
|
59
|
-
Base64.encode64(str).delete("\n")
|
60
|
-
end
|
61
56
|
end
|
62
57
|
end
|
data/lib/twitter/media/photo.rb
CHANGED
@@ -15,9 +15,8 @@ module Twitter
|
|
15
15
|
#
|
16
16
|
# @return [Array<Twitter::Size>]
|
17
17
|
def sizes
|
18
|
-
@attrs.fetch(:sizes, []).
|
18
|
+
@attrs.fetch(:sizes, []).each_with_object({}) do |(key, value), object|
|
19
19
|
object[key] = Size.new(value)
|
20
|
-
object
|
21
20
|
end
|
22
21
|
end
|
23
22
|
memoize :sizes
|
data/lib/twitter/media/video.rb
CHANGED
data/lib/twitter/null_object.rb
CHANGED
@@ -9,9 +9,8 @@ module Twitter
|
|
9
9
|
#
|
10
10
|
# @return [Array<Twitter::Size>]
|
11
11
|
def sizes
|
12
|
-
@attrs.fetch(:sizes, []).
|
12
|
+
@attrs.fetch(:sizes, []).each_with_object({}) do |(key, value), object|
|
13
13
|
object[key] = Size.new(value)
|
14
|
-
object
|
15
14
|
end
|
16
15
|
end
|
17
16
|
memoize :sizes
|
data/lib/twitter/rest/client.rb
CHANGED
@@ -27,16 +27,16 @@ module Twitter
|
|
27
27
|
# @return [Hash]
|
28
28
|
def connection_options
|
29
29
|
@connection_options ||= {
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
30
|
+
builder: middleware,
|
31
|
+
headers: {
|
32
|
+
accept: 'application/json',
|
33
|
+
user_agent: user_agent,
|
34
34
|
},
|
35
|
-
:
|
36
|
-
:
|
37
|
-
:
|
35
|
+
request: {
|
36
|
+
open_timeout: 10,
|
37
|
+
timeout: 30,
|
38
38
|
},
|
39
|
-
:
|
39
|
+
proxy: proxy,
|
40
40
|
}
|
41
41
|
end
|
42
42
|
|
@@ -69,7 +69,7 @@ module Twitter
|
|
69
69
|
arguments = Twitter::Arguments.new(args)
|
70
70
|
pmap(arguments) do |tweet|
|
71
71
|
begin
|
72
|
-
perform_post_with_object('/1.1/favorites/create.json', arguments.options.merge(:
|
72
|
+
perform_post_with_object('/1.1/favorites/create.json', arguments.options.merge(id: extract_id(tweet)), Twitter::Tweet)
|
73
73
|
rescue Twitter::Error::AlreadyFavorited, Twitter::Error::NotFound
|
74
74
|
next
|
75
75
|
end
|
@@ -96,7 +96,7 @@ module Twitter
|
|
96
96
|
def favorite!(*args)
|
97
97
|
arguments = Twitter::Arguments.new(args)
|
98
98
|
pmap(arguments) do |tweet|
|
99
|
-
perform_post_with_object('/1.1/favorites/create.json', arguments.options.merge(:
|
99
|
+
perform_post_with_object('/1.1/favorites/create.json', arguments.options.merge(id: extract_id(tweet)), Twitter::Tweet)
|
100
100
|
end
|
101
101
|
end
|
102
102
|
alias create_favorite! favorite!
|
data/lib/twitter/rest/lists.rb
CHANGED
@@ -328,7 +328,7 @@ module Twitter
|
|
328
328
|
# @option options [String] :mode ('public') Whether your list is public or private. Values can be 'public' or 'private'.
|
329
329
|
# @option options [String] :description The description to give the list.
|
330
330
|
def create_list(name, options = {})
|
331
|
-
perform_post_with_object('/1.1/lists/create.json', options.merge(:
|
331
|
+
perform_post_with_object('/1.1/lists/create.json', options.merge(name: name), Twitter::List)
|
332
332
|
end
|
333
333
|
deprecate_alias :list_create, :create_list
|
334
334
|
|
data/lib/twitter/rest/oauth.rb
CHANGED
@@ -56,7 +56,7 @@ module Twitter
|
|
56
56
|
conn = connection.dup
|
57
57
|
conn.builder.swap(4, Twitter::REST::Response::ParseErrorJson)
|
58
58
|
response = conn.post('/oauth/request_token?x_auth_mode=reverse_auth') do |request|
|
59
|
-
request.headers[:authorization] = Twitter::Headers.new(self, :post, 'https://api.twitter.com/oauth/request_token', :
|
59
|
+
request.headers[:authorization] = Twitter::Headers.new(self, :post, 'https://api.twitter.com/oauth/request_token', x_auth_mode: 'reverse_auth').oauth_auth_header.to_s
|
60
60
|
end
|
61
61
|
response.body
|
62
62
|
end
|
@@ -12,7 +12,7 @@ module Twitter
|
|
12
12
|
when WHITESPACE_REGEX, nil
|
13
13
|
nil
|
14
14
|
else
|
15
|
-
JSON.parse(body, :
|
15
|
+
JSON.parse(body, symbolize_names: true)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -28,4 +28,4 @@ module Twitter
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
Faraday::Response.register_middleware :
|
31
|
+
Faraday::Response.register_middleware twitter_parse_json: Twitter::REST::Response::ParseJson
|
@@ -63,7 +63,7 @@ module Twitter
|
|
63
63
|
# @param query [String] The query of the search the user would like to save.
|
64
64
|
# @param options [Hash] A customizable set of options.
|
65
65
|
def create_saved_search(query, options = {})
|
66
|
-
perform_post_with_object('/1.1/saved_searches/create.json', options.merge(:
|
66
|
+
perform_post_with_object('/1.1/saved_searches/create.json', options.merge(query: query), Twitter::SavedSearch)
|
67
67
|
end
|
68
68
|
deprecate_alias :saved_search_create, :create_saved_search
|
69
69
|
|
data/lib/twitter/rest/search.rb
CHANGED
@@ -27,7 +27,7 @@ module Twitter
|
|
27
27
|
# @return [Twitter::SearchResults] Return tweets that match a specified query with search metadata
|
28
28
|
def search(q, options = {})
|
29
29
|
options[:count] ||= MAX_TWEETS_PER_REQUEST
|
30
|
-
request = Twitter::REST::Request.new(self, :get, '/1.1/search/tweets.json', options.merge(:
|
30
|
+
request = Twitter::REST::Request.new(self, :get, '/1.1/search/tweets.json', options.merge(q: q))
|
31
31
|
Twitter::SearchResults.new(request)
|
32
32
|
end
|
33
33
|
end
|
data/lib/twitter/rest/tweets.rb
CHANGED
@@ -76,7 +76,7 @@ module Twitter
|
|
76
76
|
def statuses(*args)
|
77
77
|
arguments = Twitter::Arguments.new(args)
|
78
78
|
flat_pmap(arguments.each_slice(MAX_TWEETS_PER_REQUEST)) do |tweets|
|
79
|
-
perform_post_with_objects('/1.1/statuses/lookup.json', arguments.options.merge(:
|
79
|
+
perform_post_with_objects('/1.1/statuses/lookup.json', arguments.options.merge(id: tweets.collect { |u| extract_id(u) }.join(',')), Twitter::Tweet)
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
@@ -127,7 +127,7 @@ module Twitter
|
|
127
127
|
def update(status, options = {})
|
128
128
|
update!(status, options)
|
129
129
|
rescue Twitter::Error::DuplicateStatus
|
130
|
-
user_timeline(:
|
130
|
+
user_timeline(count: 1).first
|
131
131
|
end
|
132
132
|
|
133
133
|
# Updates the authenticating user's status
|
@@ -155,7 +155,7 @@ module Twitter
|
|
155
155
|
hash = options.dup
|
156
156
|
hash[:in_reply_to_status_id] = hash.delete(:in_reply_to_status).id unless hash[:in_reply_to_status].nil?
|
157
157
|
hash[:place_id] = hash.delete(:place).woeid unless hash[:place].nil?
|
158
|
-
perform_post_with_object('/1.1/statuses/update.json', hash.merge(:
|
158
|
+
perform_post_with_object('/1.1/statuses/update.json', hash.merge(status: status), Twitter::Tweet)
|
159
159
|
end
|
160
160
|
|
161
161
|
# Retweets the specified Tweets as the authenticating user
|
@@ -37,7 +37,7 @@ module Twitter
|
|
37
37
|
# @param options [Hash] A customizable set of options.
|
38
38
|
def tweet_count(uri, options = {})
|
39
39
|
connection = Faraday.new('https://cdn.api.twitter.com', connection_options)
|
40
|
-
connection.get('/1/urls/count.json', options.merge(:
|
40
|
+
connection.get('/1/urls/count.json', options.merge(url: uri.to_s)).body[:count]
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
data/lib/twitter/rest/users.rb
CHANGED
@@ -34,7 +34,7 @@ module Twitter
|
|
34
34
|
request_method = options.size.zero? ? :get : :post
|
35
35
|
response = perform_request(request_method.to_sym, '/1.1/account/settings.json', options)
|
36
36
|
# https://dev.twitter.com/issues/59
|
37
|
-
response.update(:
|
37
|
+
response.update(trend_location: response.fetch(:trend_location, []).first)
|
38
38
|
Twitter::Settings.new(response)
|
39
39
|
end
|
40
40
|
|
@@ -62,7 +62,7 @@ module Twitter
|
|
62
62
|
# @param device [String] Must be one of: 'sms', 'none'.
|
63
63
|
# @param options [Hash] A customizable set of options.
|
64
64
|
def update_delivery_device(device, options = {})
|
65
|
-
perform_post_with_object('/1.1/account/update_delivery_device.json', options.merge(:
|
65
|
+
perform_post_with_object('/1.1/account/update_delivery_device.json', options.merge(device: device), Twitter::User)
|
66
66
|
end
|
67
67
|
|
68
68
|
# Sets values that users are able to set under the "Account" tab of their settings page
|
@@ -93,7 +93,7 @@ module Twitter
|
|
93
93
|
# @param options [Hash] A customizable set of options.
|
94
94
|
# @option options [Boolean] :tile Whether or not to tile the background image. If set to true the background image will be displayed tiled. The image will not be tiled otherwise.
|
95
95
|
def update_profile_background_image(image, options = {})
|
96
|
-
perform_post_with_object('/1.1/account/update_profile_background_image.json', options.merge(:
|
96
|
+
perform_post_with_object('/1.1/account/update_profile_background_image.json', options.merge(image: image), Twitter::User)
|
97
97
|
end
|
98
98
|
|
99
99
|
# Sets one or more hex values that control the color scheme of the authenticating user's profile
|
@@ -125,7 +125,7 @@ module Twitter
|
|
125
125
|
# @param image [File] The avatar image for the profile, base64-encoded. Must be a valid GIF, JPG, or PNG image of less than 700 kilobytes in size. Images with width larger than 500 pixels will be scaled down. Animated GIFs will be converted to a static GIF of the first frame, removing the animation.
|
126
126
|
# @param options [Hash] A customizable set of options.
|
127
127
|
def update_profile_image(image, options = {})
|
128
|
-
perform_post_with_object('/1.1/account/update_profile_image.json', options.merge(:
|
128
|
+
perform_post_with_object('/1.1/account/update_profile_image.json', options.merge(image: image), Twitter::User)
|
129
129
|
end
|
130
130
|
|
131
131
|
# Returns an array of user objects that the authenticating user is blocking
|
@@ -286,7 +286,7 @@ module Twitter
|
|
286
286
|
# @option options [Integer] :count The number of people to retrieve. Maxiumum of 20 allowed per page.
|
287
287
|
# @option options [Integer] :page Specifies the page of results to retrieve.
|
288
288
|
def user_search(query, options = {})
|
289
|
-
perform_get_with_objects('/1.1/users/search.json', options.merge(:
|
289
|
+
perform_get_with_objects('/1.1/users/search.json', options.merge(q: query), Twitter::User)
|
290
290
|
end
|
291
291
|
|
292
292
|
# Returns an array of users that the specified user can contribute to
|
@@ -357,7 +357,7 @@ module Twitter
|
|
357
357
|
# @option options [Integer] :offset_left The number of pixels by which to offset the uploaded image from the left. Use with height, width, and offset_top to select the desired region of the image to use.
|
358
358
|
# @option options [Integer] :offset_top The number of pixels by which to offset the uploaded image from the top. Use with height, width, and offset_left to select the desired region of the image to use.
|
359
359
|
def update_profile_banner(banner, options = {})
|
360
|
-
perform_post('/1.1/account/update_profile_banner.json', options.merge(:
|
360
|
+
perform_post('/1.1/account/update_profile_banner.json', options.merge(banner: banner))
|
361
361
|
true
|
362
362
|
end
|
363
363
|
|
data/lib/twitter/rest/utils.rb
CHANGED
@@ -147,7 +147,7 @@ module Twitter
|
|
147
147
|
def parallel_objects_from_response(klass, request_method, path, args)
|
148
148
|
arguments = Twitter::Arguments.new(args)
|
149
149
|
pmap(arguments) do |object|
|
150
|
-
perform_request_with_object(request_method, path, arguments.options.merge(:
|
150
|
+
perform_request_with_object(request_method, path, arguments.options.merge(id: extract_id(object)), klass)
|
151
151
|
end
|
152
152
|
end
|
153
153
|
|
@@ -163,7 +163,7 @@ module Twitter
|
|
163
163
|
end
|
164
164
|
|
165
165
|
def user_id
|
166
|
-
@user_id ||= verify_credentials(:
|
166
|
+
@user_id ||= verify_credentials(skip_status: true).id
|
167
167
|
end
|
168
168
|
|
169
169
|
def user_id?
|
@@ -73,7 +73,7 @@ module Twitter
|
|
73
73
|
def site(*args, &block)
|
74
74
|
arguments = Arguments.new(args)
|
75
75
|
user_ids = collect_user_ids(arguments)
|
76
|
-
request(:get, 'https://sitestream.twitter.com:443/1.1/site.json', arguments.options.merge(:
|
76
|
+
request(:get, 'https://sitestream.twitter.com:443/1.1/site.json', arguments.options.merge(follow: user_ids.join(',')), &block)
|
77
77
|
end
|
78
78
|
|
79
79
|
# Streams messages for a single user
|
@@ -109,8 +109,8 @@ module Twitter
|
|
109
109
|
def request(method, uri, params)
|
110
110
|
before_request.call
|
111
111
|
authorization = Twitter::Headers.new(self, method, uri, params).oauth_auth_header.to_s
|
112
|
-
headers = default_headers.merge(:
|
113
|
-
request = HTTP::Request.new(:
|
112
|
+
headers = default_headers.merge(authorization: authorization)
|
113
|
+
request = HTTP::Request.new(verb: method, uri: uri + '?' + to_url_params(params), headers: headers)
|
114
114
|
response = Streaming::Response.new do |data|
|
115
115
|
if item = Streaming::MessageParser.parse(data) # rubocop:disable AssignmentInCondition
|
116
116
|
yield(item)
|
@@ -127,8 +127,8 @@ module Twitter
|
|
127
127
|
|
128
128
|
def default_headers
|
129
129
|
@default_headers ||= {
|
130
|
-
:
|
131
|
-
:
|
130
|
+
accept: '*/*',
|
131
|
+
user_agent: user_agent,
|
132
132
|
}
|
133
133
|
end
|
134
134
|
|
@@ -1,4 +1,7 @@
|
|
1
1
|
require 'buftok'
|
2
|
+
require 'http'
|
3
|
+
require 'json'
|
4
|
+
require 'twitter/error'
|
2
5
|
|
3
6
|
module Twitter
|
4
7
|
module Streaming
|
@@ -24,7 +27,7 @@ module Twitter
|
|
24
27
|
def on_body(data)
|
25
28
|
@tokenizer.extract(data).each do |line|
|
26
29
|
next if line.empty?
|
27
|
-
@block.call(JSON.parse(line, :
|
30
|
+
@block.call(JSON.parse(line, symbolize_names: true))
|
28
31
|
end
|
29
32
|
end
|
30
33
|
end
|
data/lib/twitter/user.rb
CHANGED
@@ -54,7 +54,7 @@ module Twitter
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def define_entity_uris_method(key1, key2)
|
57
|
-
define_method(key1) do
|
57
|
+
define_method(key1) do
|
58
58
|
@attrs.fetch(:entities, {}).fetch(key2, {}).fetch(:urls, []).collect do |url|
|
59
59
|
Entity::URI.new(url)
|
60
60
|
end
|
@@ -63,7 +63,7 @@ module Twitter
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def define_entity_uris_predicate_method(key1)
|
66
|
-
define_method(:"#{key1}?") do
|
66
|
+
define_method(:"#{key1}?") do
|
67
67
|
send(:"#{key1}").any?
|
68
68
|
end
|
69
69
|
memoize(:"#{key1}?")
|
data/lib/twitter/version.rb
CHANGED
@@ -4,12 +4,12 @@ module Twitter
|
|
4
4
|
|
5
5
|
# @return [Integer]
|
6
6
|
def major
|
7
|
-
|
7
|
+
6
|
8
8
|
end
|
9
9
|
|
10
10
|
# @return [Integer]
|
11
11
|
def minor
|
12
|
-
|
12
|
+
0
|
13
13
|
end
|
14
14
|
|
15
15
|
# @return [Integer]
|
@@ -25,10 +25,10 @@ module Twitter
|
|
25
25
|
# @return [Hash]
|
26
26
|
def to_h
|
27
27
|
{
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
28
|
+
major: major,
|
29
|
+
minor: minor,
|
30
|
+
patch: patch,
|
31
|
+
pre: pre,
|
32
32
|
}
|
33
33
|
end
|
34
34
|
|
data/twitter.gemspec
CHANGED
@@ -3,16 +3,15 @@ $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.
|
6
|
+
spec.add_dependency 'addressable', '~> 2.5'
|
7
7
|
spec.add_dependency 'buftok', '~> 0.2.0'
|
8
|
-
spec.add_dependency 'equalizer', '0.0.
|
9
|
-
spec.add_dependency 'faraday', '~> 0.
|
10
|
-
spec.add_dependency 'http', '~> 1
|
8
|
+
spec.add_dependency 'equalizer', '0.0.11'
|
9
|
+
spec.add_dependency 'faraday', '~> 0.10.0'
|
10
|
+
spec.add_dependency 'http', '~> 2.1'
|
11
11
|
spec.add_dependency 'http_parser.rb', '~> 0.6.0'
|
12
|
-
spec.add_dependency '
|
13
|
-
spec.add_dependency '
|
14
|
-
spec.add_dependency '
|
15
|
-
spec.add_dependency 'simple_oauth', '~> 0.3.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'
|
16
15
|
spec.add_development_dependency 'bundler', '~> 1.0'
|
17
16
|
spec.authors = ['Erik Michaels-Ober', 'John Nunemaker', 'Wynn Netherland', 'Steve Richert', 'Steve Agalloco']
|
18
17
|
spec.description = 'A Ruby interface to the Twitter API.'
|
@@ -22,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
22
21
|
spec.licenses = %w(MIT)
|
23
22
|
spec.name = 'twitter'
|
24
23
|
spec.require_paths = %w(lib)
|
24
|
+
spec.required_ruby_version = '>= 2'
|
25
25
|
spec.required_rubygems_version = '>= 1.3.5'
|
26
26
|
spec.summary = spec.description
|
27
27
|
spec.version = Twitter::Version
|
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:
|
4
|
+
version: 6.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Michaels-Ober
|
@@ -20,14 +20,14 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "~>"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: '2.
|
23
|
+
version: '2.5'
|
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.
|
30
|
+
version: '2.5'
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: buftok
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
@@ -48,42 +48,42 @@ dependencies:
|
|
48
48
|
requirements:
|
49
49
|
- - '='
|
50
50
|
- !ruby/object:Gem::Version
|
51
|
-
version: 0.0.
|
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
|
-
version: 0.0.
|
58
|
+
version: 0.0.11
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: faraday
|
61
61
|
requirement: !ruby/object:Gem::Requirement
|
62
62
|
requirements:
|
63
63
|
- - "~>"
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version: 0.
|
65
|
+
version: 0.10.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.
|
72
|
+
version: 0.10.0
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: http
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
76
76
|
requirements:
|
77
77
|
- - "~>"
|
78
78
|
- !ruby/object:Gem::Version
|
79
|
-
version: '1
|
79
|
+
version: '2.1'
|
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: '1
|
86
|
+
version: '2.1'
|
87
87
|
- !ruby/object:Gem::Dependency
|
88
88
|
name: http_parser.rb
|
89
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,62 +98,48 @@ dependencies:
|
|
98
98
|
- - "~>"
|
99
99
|
- !ruby/object:Gem::Version
|
100
100
|
version: 0.6.0
|
101
|
-
- !ruby/object:Gem::Dependency
|
102
|
-
name: json
|
103
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
-
requirements:
|
105
|
-
- - "~>"
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
version: '1.8'
|
108
|
-
type: :runtime
|
109
|
-
prerelease: false
|
110
|
-
version_requirements: !ruby/object:Gem::Requirement
|
111
|
-
requirements:
|
112
|
-
- - "~>"
|
113
|
-
- !ruby/object:Gem::Version
|
114
|
-
version: '1.8'
|
115
101
|
- !ruby/object:Gem::Dependency
|
116
102
|
name: memoizable
|
117
103
|
requirement: !ruby/object:Gem::Requirement
|
118
104
|
requirements:
|
119
105
|
- - "~>"
|
120
106
|
- !ruby/object:Gem::Version
|
121
|
-
version: 0.4.
|
107
|
+
version: 0.4.2
|
122
108
|
type: :runtime
|
123
109
|
prerelease: false
|
124
110
|
version_requirements: !ruby/object:Gem::Requirement
|
125
111
|
requirements:
|
126
112
|
- - "~>"
|
127
113
|
- !ruby/object:Gem::Version
|
128
|
-
version: 0.4.
|
114
|
+
version: 0.4.2
|
129
115
|
- !ruby/object:Gem::Dependency
|
130
116
|
name: naught
|
131
117
|
requirement: !ruby/object:Gem::Requirement
|
132
118
|
requirements:
|
133
119
|
- - "~>"
|
134
120
|
- !ruby/object:Gem::Version
|
135
|
-
version: '1.
|
121
|
+
version: '1.1'
|
136
122
|
type: :runtime
|
137
123
|
prerelease: false
|
138
124
|
version_requirements: !ruby/object:Gem::Requirement
|
139
125
|
requirements:
|
140
126
|
- - "~>"
|
141
127
|
- !ruby/object:Gem::Version
|
142
|
-
version: '1.
|
128
|
+
version: '1.1'
|
143
129
|
- !ruby/object:Gem::Dependency
|
144
130
|
name: simple_oauth
|
145
131
|
requirement: !ruby/object:Gem::Requirement
|
146
132
|
requirements:
|
147
133
|
- - "~>"
|
148
134
|
- !ruby/object:Gem::Version
|
149
|
-
version: 0.3.
|
135
|
+
version: 0.3.1
|
150
136
|
type: :runtime
|
151
137
|
prerelease: false
|
152
138
|
version_requirements: !ruby/object:Gem::Requirement
|
153
139
|
requirements:
|
154
140
|
- - "~>"
|
155
141
|
- !ruby/object:Gem::Version
|
156
|
-
version: 0.3.
|
142
|
+
version: 0.3.1
|
157
143
|
- !ruby/object:Gem::Dependency
|
158
144
|
name: bundler
|
159
145
|
requirement: !ruby/object:Gem::Requirement
|
@@ -281,7 +267,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
281
267
|
requirements:
|
282
268
|
- - ">="
|
283
269
|
- !ruby/object:Gem::Version
|
284
|
-
version: '
|
270
|
+
version: '2'
|
285
271
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
286
272
|
requirements:
|
287
273
|
- - ">="
|