twitter 8.0.1 → 8.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/LICENSE.md +1 -1
- data/README.md +6 -6
- data/lib/twitter/client.rb +3 -3
- data/lib/twitter/direct_message_event.rb +3 -3
- data/lib/twitter/direct_messages/welcome_message_wrapper.rb +1 -1
- data/lib/twitter/rest/direct_messages/welcome_messages.rb +5 -5
- data/lib/twitter/rest/direct_messages.rb +4 -4
- data/lib/twitter/rest/lists.rb +1 -1
- data/lib/twitter/rest/premium_search.rb +1 -1
- data/lib/twitter/rest/saved_searches.rb +1 -1
- data/lib/twitter/rest/timelines.rb +2 -2
- data/lib/twitter/rest/tweets.rb +1 -1
- data/lib/twitter/rest/upload_utils.rb +5 -5
- data/lib/twitter/rest/users.rb +2 -2
- data/lib/twitter/rest/utils.rb +1 -1
- data/lib/twitter/streaming/client.rb +11 -11
- data/lib/twitter/version.rb +3 -8
- data/twitter.gemspec +18 -35
- metadata +23 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59d807ebfc2128393a4ab392ac3a5ebd0d7f544a834f1ae08504cbe71bbde002
|
4
|
+
data.tar.gz: 9113658774b1b0d05cdba8f10a741d938a29c5a0b54ef35cf6db0d005a0dc3a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0eeaff88905056ae36daf1ddc6ffe027c10163271587a81d1a09413e1c17abf51cf1e104d5239faf92654caac643ec069c278da3ee481339f2a7128cfbc91473
|
7
|
+
data.tar.gz: 8895aef36dbcf669fe49042a775634c3aef1bb3de499e158d1270b14f5463e46e82c952051883e00627c41aea55e7322f3349510f24b108a3d0cc5f47e7678e0
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
8.2.0
|
2
|
+
-----
|
3
|
+
* [Drop support for Ruby 3.1](https://github.com/sferik/twitter-ruby/commit/6e63502356711f8a614b18030ab4e9fbbcb478c1)
|
4
|
+
* [Update post-install message](https://github.com/sferik/twitter-ruby/commit/9883f870fc9c790370452349c29daadbce20be6c)
|
5
|
+
|
6
|
+
8.1.0
|
7
|
+
-----
|
8
|
+
* [Update runtime dependencies](https://github.com/sferik/twitter-ruby/commit/25e8a3c623ef7d6b67b38276ad3d2f0b7e925f07)
|
9
|
+
* [Drop support for Ruby 3.0](https://github.com/sferik/twitter-ruby/commit/4ef27b3dd66d9f0a875be4918cf61600aeb85d96)
|
10
|
+
* [Update post-install message](https://github.com/sferik/twitter-ruby/commit/882381494dabeb8ff43ad150449a99d950b0a211)
|
11
|
+
|
1
12
|
8.0.1
|
2
13
|
-----
|
3
14
|
* [Add post-install message](https://github.com/sferik/twitter/commit/154e66b3655b41226ca8b6cbf52e2866a9e5b2d0)
|
data/LICENSE.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2006-
|
1
|
+
Copyright (c) 2006-2025 Erik Berlin, John Nunemaker, Wynn Netherland, Steve Richert, Steve Agalloco
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
a copy of this software and associated documentation files (the
|
data/README.md
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# The Twitter Ruby Gem
|
2
2
|
|
3
3
|
## 📣 This gem is no longer maintained
|
4
|
-
The Twitter Ruby Gem is no longer maintained and will not support Twitter API v2.
|
4
|
+
The Twitter Ruby Gem is no longer maintained and will not support X (Twitter) API v2.
|
5
5
|
|
6
6
|
## 🎉 Here’s the good news
|
7
|
-
We recommend switching to the [X gem][x], which supports both v1.1 and v2
|
8
|
-
the transition easier. It’s a robust, modern libary that is designed to
|
9
|
-
you’ll be able to easily integrate any new changes
|
7
|
+
We recommend switching to the [X gem][x], which supports both API v1.1 and v2
|
8
|
+
to make the transition easier. It’s a robust, modern libary that is designed to
|
9
|
+
ensure you’ll be able to easily integrate any new changes X may roll out.
|
10
10
|
|
11
11
|
[x]: https://sferik.github.io/x-ruby/
|
12
12
|
|
@@ -35,10 +35,10 @@ Thanks for considering sponsorship. Together we can make the X gem even better!
|
|
35
35
|
You should [follow @gem][follow] on Twitter for announcements and updates about
|
36
36
|
this library.
|
37
37
|
|
38
|
-
[follow]: https://
|
38
|
+
[follow]: https://x.com/gem
|
39
39
|
|
40
40
|
## Copyright
|
41
|
-
Copyright (c) 2006-
|
41
|
+
Copyright (c) 2006-2025 Erik Berlin, John Nunemaker, Wynn Netherland, Steve Richert, Steve Agalloco.
|
42
42
|
See [LICENSE][] for details.
|
43
43
|
|
44
44
|
[license]: LICENSE.md
|
data/lib/twitter/client.rb
CHANGED
@@ -14,7 +14,7 @@ module Twitter
|
|
14
14
|
# @return [Twitter::Client]
|
15
15
|
def initialize(options = {})
|
16
16
|
options.each do |key, value|
|
17
|
-
instance_variable_set("@#{key}", value)
|
17
|
+
instance_variable_set(:"@#{key}", value)
|
18
18
|
end
|
19
19
|
yield(self) if block_given?
|
20
20
|
end
|
@@ -32,8 +32,8 @@ module Twitter
|
|
32
32
|
# @return [Hash]
|
33
33
|
def credentials
|
34
34
|
{
|
35
|
-
consumer_key
|
36
|
-
consumer_secret
|
35
|
+
consumer_key:,
|
36
|
+
consumer_secret:,
|
37
37
|
token: access_token,
|
38
38
|
token_secret: access_token_secret,
|
39
39
|
}
|
@@ -35,10 +35,10 @@ module Twitter
|
|
35
35
|
{id: attrs[:id].to_i,
|
36
36
|
created_at: Time.at(attrs[:created_timestamp].to_i / 1000.0),
|
37
37
|
sender: {id: sender_id},
|
38
|
-
sender_id
|
38
|
+
sender_id:,
|
39
39
|
recipient: {id: recipient_id},
|
40
|
-
recipient_id
|
41
|
-
text:
|
40
|
+
recipient_id:,
|
41
|
+
text:}
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
@@ -17,7 +17,7 @@ module Twitter
|
|
17
17
|
json_options = {
|
18
18
|
welcome_message: {
|
19
19
|
message_data: {
|
20
|
-
text
|
20
|
+
text:,
|
21
21
|
},
|
22
22
|
},
|
23
23
|
}
|
@@ -36,7 +36,7 @@ module Twitter
|
|
36
36
|
}
|
37
37
|
json_options = {
|
38
38
|
message_data: {
|
39
|
-
text
|
39
|
+
text:,
|
40
40
|
},
|
41
41
|
}
|
42
42
|
welcome_message_wrapper = perform_request_with_object(:json_put, "/1.1/direct_messages/welcome_messages/update.json", json_options.merge!(options), Twitter::DirectMessages::WelcomeMessageWrapper, params)
|
@@ -52,7 +52,7 @@ module Twitter
|
|
52
52
|
|
53
53
|
def welcome_message_list(options = {})
|
54
54
|
limit = options.fetch(:count, 20)
|
55
|
-
welcome_message_wrappers = perform_get_with_cursor("/1.1/direct_messages/welcome_messages/list.json", options.merge!(no_default_cursor: true, count: 50, limit:
|
55
|
+
welcome_message_wrappers = perform_get_with_cursor("/1.1/direct_messages/welcome_messages/list.json", options.merge!(no_default_cursor: true, count: 50, limit:), :welcome_messages, Twitter::DirectMessages::WelcomeMessageWrapper)
|
56
56
|
welcome_message_wrappers.collect(&:welcome_message)
|
57
57
|
end
|
58
58
|
|
@@ -61,7 +61,7 @@ module Twitter
|
|
61
61
|
def create_welcome_message_rule(welcome_message_id, options = {})
|
62
62
|
json_options = {
|
63
63
|
welcome_message_rule: {
|
64
|
-
welcome_message_id
|
64
|
+
welcome_message_id:,
|
65
65
|
},
|
66
66
|
}
|
67
67
|
rule_wrapper = perform_request_with_object(:json_post, "/1.1/direct_messages/welcome_messages/rules/new.json", json_options.merge!(options), Twitter::DirectMessages::WelcomeMessageRuleWrapper)
|
@@ -81,7 +81,7 @@ module Twitter
|
|
81
81
|
|
82
82
|
def welcome_message_rule_list(options = {})
|
83
83
|
limit = options.fetch(:count, 20)
|
84
|
-
rule_wrappers = perform_get_with_cursor("/1.1/direct_messages/welcome_messages/rules/list.json", options.merge!(no_default_cursor: true, count: 50, limit:
|
84
|
+
rule_wrappers = perform_get_with_cursor("/1.1/direct_messages/welcome_messages/rules/list.json", options.merge!(no_default_cursor: true, count: 50, limit:), :welcome_message_rules, Twitter::DirectMessages::WelcomeMessageRuleWrapper)
|
85
85
|
rule_wrappers.collect(&:welcome_message_rule)
|
86
86
|
end
|
87
87
|
end
|
@@ -25,7 +25,7 @@ module Twitter
|
|
25
25
|
# @option options [String] :cursor Specifies the cursor position of results to retrieve.
|
26
26
|
def direct_messages_events(options = {})
|
27
27
|
limit = options.fetch(:count, 20)
|
28
|
-
perform_get_with_cursor("/1.1/direct_messages/events/list.json", options.merge!(no_default_cursor: true, count: 50, limit:
|
28
|
+
perform_get_with_cursor("/1.1/direct_messages/events/list.json", options.merge!(no_default_cursor: true, count: 50, limit:), :events, Twitter::DirectMessageEvent)
|
29
29
|
end
|
30
30
|
|
31
31
|
# Returns all Direct Messages for the authenticated user (both sent and received) within the last 30 days. Sorted in reverse-chronological order.
|
@@ -149,7 +149,7 @@ module Twitter
|
|
149
149
|
# @param ids [Enumerable<Integer>] A collection of direct message IDs.
|
150
150
|
def destroy_direct_message(*ids)
|
151
151
|
pmap(ids) do |id|
|
152
|
-
perform_requests(:delete, "/1.1/direct_messages/events/destroy.json", id:
|
152
|
+
perform_requests(:delete, "/1.1/direct_messages/events/destroy.json", id:)
|
153
153
|
end
|
154
154
|
nil
|
155
155
|
end
|
@@ -207,7 +207,7 @@ module Twitter
|
|
207
207
|
def create_direct_message_event_with_media(user, text, media, options = {})
|
208
208
|
media_id = upload(media, media_category_prefix: "dm")[:media_id]
|
209
209
|
options = options.dup
|
210
|
-
options[:event] = {type: "message_create", message_create: {target: {recipient_id: extract_id(user)}, message_data: {text
|
210
|
+
options[:event] = {type: "message_create", message_create: {target: {recipient_id: extract_id(user)}, message_data: {text:, attachment: {type: "media", media: {id: media_id}}}}}
|
211
211
|
response = Twitter::REST::Request.new(self, :json_post, "/1.1/direct_messages/events/new.json", options).perform
|
212
212
|
Twitter::DirectMessageEvent.new(response[:event])
|
213
213
|
end
|
@@ -215,7 +215,7 @@ module Twitter
|
|
215
215
|
private
|
216
216
|
|
217
217
|
def format_json_options(user_id, text, options)
|
218
|
-
{event: {type: "message_create", message_create: {target: {recipient_id: user_id}, message_data: {text:
|
218
|
+
{event: {type: "message_create", message_create: {target: {recipient_id: user_id}, message_data: {text:}.merge(options)}}}
|
219
219
|
end
|
220
220
|
end
|
221
221
|
end
|
data/lib/twitter/rest/lists.rb
CHANGED
@@ -325,7 +325,7 @@ module Twitter
|
|
325
325
|
# @option options [String] :mode ('public') Whether your list is public or private. Values can be 'public' or 'private'.
|
326
326
|
# @option options [String] :description The description to give the list.
|
327
327
|
def create_list(name, options = {})
|
328
|
-
perform_post_with_object("/1.1/lists/create.json", options.merge(name:
|
328
|
+
perform_post_with_object("/1.1/lists/create.json", options.merge(name:), Twitter::List)
|
329
329
|
end
|
330
330
|
|
331
331
|
# Show the specified list
|
@@ -26,7 +26,7 @@ module Twitter
|
|
26
26
|
request_config[:request_method] = :json_post if request_config[:request_method].nil? || request_config[:request_method] == :post
|
27
27
|
request_config[:product] ||= "30day"
|
28
28
|
path = "/1.1/tweets/search/#{request_config[:product]}/#{dev_environment}.json"
|
29
|
-
request = Twitter::REST::Request.new(self, request_config[:request_method], path, options.merge(query:
|
29
|
+
request = Twitter::REST::Request.new(self, request_config[:request_method], path, options.merge(query:))
|
30
30
|
Twitter::PremiumSearchResults.new(request, request_config)
|
31
31
|
end
|
32
32
|
end
|
@@ -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(query:
|
66
|
+
perform_post_with_object("/1.1/saved_searches/create.json", options.merge(query:), Twitter::SavedSearch)
|
67
67
|
end
|
68
68
|
|
69
69
|
# Destroys saved searches for the authenticated user
|
@@ -185,12 +185,12 @@ module Twitter
|
|
185
185
|
# @param collection [Array]
|
186
186
|
# @param max_id [Integer, NilClass]
|
187
187
|
# @return [Array<Twitter::Tweet>]
|
188
|
-
def collect_with_max_id(collection = [], max_id = nil, &
|
188
|
+
def collect_with_max_id(collection = [], max_id = nil, &)
|
189
189
|
tweets = yield(max_id)
|
190
190
|
return collection if tweets.nil?
|
191
191
|
|
192
192
|
collection += tweets
|
193
|
-
tweets.empty? ? collection.flatten : collect_with_max_id(collection, tweets.last.id - 1, &
|
193
|
+
tweets.empty? ? collection.flatten : collect_with_max_id(collection, tweets.last.id - 1, &)
|
194
194
|
end
|
195
195
|
end
|
196
196
|
end
|
data/lib/twitter/rest/tweets.rb
CHANGED
@@ -154,7 +154,7 @@ module Twitter
|
|
154
154
|
hash = options.dup
|
155
155
|
hash[:in_reply_to_status_id] = hash.delete(:in_reply_to_status).id unless hash[:in_reply_to_status].nil?
|
156
156
|
hash[:place_id] = hash.delete(:place).woeid unless hash[:place].nil?
|
157
|
-
perform_post_with_object("/1.1/statuses/update.json", hash.merge(status:
|
157
|
+
perform_post_with_object("/1.1/statuses/update.json", hash.merge(status:), Twitter::Tweet)
|
158
158
|
end
|
159
159
|
|
160
160
|
# Retweets the specified Tweets as the authenticating user
|
@@ -28,8 +28,8 @@ module Twitter
|
|
28
28
|
Timeout.timeout(timeouts&.fetch(:upload, nil), Twitter::Error::TimeoutError) do
|
29
29
|
init = Twitter::REST::Request.new(self, :post, "https://upload.twitter.com/1.1/media/upload.json",
|
30
30
|
command: "INIT",
|
31
|
-
media_type
|
32
|
-
media_category
|
31
|
+
media_type:,
|
32
|
+
media_category:,
|
33
33
|
total_bytes: media.size).perform
|
34
34
|
append_media(media, init[:media_id])
|
35
35
|
media.close
|
@@ -44,7 +44,7 @@ module Twitter
|
|
44
44
|
seg ||= -1
|
45
45
|
Twitter::REST::Request.new(self, :multipart_post, "https://upload.twitter.com/1.1/media/upload.json",
|
46
46
|
command: "APPEND",
|
47
|
-
media_id
|
47
|
+
media_id:,
|
48
48
|
segment_index: seg += 1,
|
49
49
|
key: :media,
|
50
50
|
file: StringIO.new(chunk)).perform
|
@@ -55,7 +55,7 @@ module Twitter
|
|
55
55
|
# @see https://developer.twitter.com/en/docs/media/upload-media/api-reference/get-media-upload-status
|
56
56
|
def finalize_media(media_id)
|
57
57
|
response = Twitter::REST::Request.new(self, :post, "https://upload.twitter.com/1.1/media/upload.json",
|
58
|
-
command: "FINALIZE", media_id:
|
58
|
+
command: "FINALIZE", media_id:).perform
|
59
59
|
failed_or_succeeded = %w[failed succeeded]
|
60
60
|
|
61
61
|
loop do
|
@@ -63,7 +63,7 @@ module Twitter
|
|
63
63
|
|
64
64
|
sleep(response[:processing_info][:check_after_secs])
|
65
65
|
response = Twitter::REST::Request.new(self, :get, "https://upload.twitter.com/1.1/media/upload.json",
|
66
|
-
command: "STATUS", media_id:
|
66
|
+
command: "STATUS", media_id:).perform
|
67
67
|
end
|
68
68
|
response
|
69
69
|
end
|
data/lib/twitter/rest/users.rb
CHANGED
@@ -63,7 +63,7 @@ module Twitter
|
|
63
63
|
# @param device [String] Must be one of: 'sms', 'none'.
|
64
64
|
# @param options [Hash] A customizable set of options.
|
65
65
|
def update_delivery_device(device, options = {})
|
66
|
-
perform_post_with_object("/1.1/account/update_delivery_device.json", options.merge(device:
|
66
|
+
perform_post_with_object("/1.1/account/update_delivery_device.json", options.merge(device:), Twitter::User)
|
67
67
|
end
|
68
68
|
|
69
69
|
# Sets values that users are able to set under the "Account" tab of their settings page
|
@@ -337,7 +337,7 @@ module Twitter
|
|
337
337
|
# @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.
|
338
338
|
# @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.
|
339
339
|
def update_profile_banner(banner, options = {})
|
340
|
-
perform_post("/1.1/account/update_profile_banner.json", options.merge(banner:
|
340
|
+
perform_post("/1.1/account/update_profile_banner.json", options.merge(banner:))
|
341
341
|
true
|
342
342
|
end
|
343
343
|
|
data/lib/twitter/rest/utils.rb
CHANGED
@@ -34,8 +34,8 @@ module Twitter
|
|
34
34
|
# @option options [String] :track Includes additional Tweets matching the specified keywords. Phrases of keywords are specified by a comma-separated list.
|
35
35
|
# @option options [String] :locations Includes additional Tweets falling within the specified bounding boxes.
|
36
36
|
# @yield [Twitter::Tweet, Twitter::Streaming::Event, Twitter::DirectMessage, Twitter::Streaming::FriendList, Twitter::Streaming::DeletedTweet, Twitter::Streaming::StallWarning] A stream of Twitter objects.
|
37
|
-
def filter(options = {}, &
|
38
|
-
request(:post, "https://stream.twitter.com:443/1.1/statuses/filter.json", options, &
|
37
|
+
def filter(options = {}, &)
|
38
|
+
request(:post, "https://stream.twitter.com:443/1.1/statuses/filter.json", options, &)
|
39
39
|
end
|
40
40
|
|
41
41
|
# Returns all public statuses
|
@@ -46,8 +46,8 @@ module Twitter
|
|
46
46
|
# @param options [Hash] A customizable set of options.
|
47
47
|
# @option options [Integer] :count The number of messages to backfill.
|
48
48
|
# @yield [Twitter::Tweet, Twitter::Streaming::Event, Twitter::DirectMessage, Twitter::Streaming::FriendList, Twitter::Streaming::DeletedTweet, Twitter::Streaming::StallWarning] A stream of Twitter objects.
|
49
|
-
def firehose(options = {}, &
|
50
|
-
request(:get, "https://stream.twitter.com:443/1.1/statuses/firehose.json", options, &
|
49
|
+
def firehose(options = {}, &)
|
50
|
+
request(:get, "https://stream.twitter.com:443/1.1/statuses/firehose.json", options, &)
|
51
51
|
end
|
52
52
|
|
53
53
|
# Returns a small random sample of all public statuses
|
@@ -55,8 +55,8 @@ module Twitter
|
|
55
55
|
# @see https://dev.twitter.com/streaming/reference/get/statuses/sample
|
56
56
|
# @see https://dev.twitter.com/streaming/overview/request-parameters
|
57
57
|
# @yield [Twitter::Tweet, Twitter::Streaming::Event, Twitter::DirectMessage, Twitter::Streaming::FriendList, Twitter::Streaming::DeletedTweet, Twitter::Streaming::StallWarning] A stream of Twitter objects.
|
58
|
-
def sample(options = {}, &
|
59
|
-
request(:get, "https://stream.twitter.com:443/1.1/statuses/sample.json", options, &
|
58
|
+
def sample(options = {}, &)
|
59
|
+
request(:get, "https://stream.twitter.com:443/1.1/statuses/sample.json", options, &)
|
60
60
|
end
|
61
61
|
|
62
62
|
# Streams messages for a set of users
|
@@ -71,10 +71,10 @@ module Twitter
|
|
71
71
|
# @option options [String] :with Specifies whether to return information for just the users specified in the follow parameter, or include messages from accounts they follow.
|
72
72
|
# @option options [String] :replies Specifies whether stall warnings should be delivered.
|
73
73
|
# @yield [Twitter::Tweet, Twitter::Streaming::Event, Twitter::DirectMessage, Twitter::Streaming::FriendList, Twitter::Streaming::DeletedTweet, Twitter::Streaming::StallWarning] A stream of Twitter objects.
|
74
|
-
def site(*args, &
|
74
|
+
def site(*args, &)
|
75
75
|
arguments = Arguments.new(args)
|
76
76
|
user_ids = collect_user_ids(arguments)
|
77
|
-
request(:get, "https://sitestream.twitter.com:443/1.1/site.json", arguments.options.merge(follow: user_ids.join(",")), &
|
77
|
+
request(:get, "https://sitestream.twitter.com:443/1.1/site.json", arguments.options.merge(follow: user_ids.join(",")), &)
|
78
78
|
end
|
79
79
|
|
80
80
|
# Streams messages for a single user
|
@@ -89,8 +89,8 @@ module Twitter
|
|
89
89
|
# @option options [String] :track Includes additional Tweets matching the specified keywords. Phrases of keywords are specified by a comma-separated list.
|
90
90
|
# @option options [String] :locations Includes additional Tweets falling within the specified bounding boxes.
|
91
91
|
# @yield [Twitter::Tweet, Twitter::Streaming::Event, Twitter::DirectMessage, Twitter::Streaming::FriendList, Twitter::Streaming::DeletedTweet, Twitter::Streaming::StallWarning] A stream of Twitter objects.
|
92
|
-
def user(options = {}, &
|
93
|
-
request(:get, "https://userstream.twitter.com:443/1.1/user.json", options, &
|
92
|
+
def user(options = {}, &)
|
93
|
+
request(:get, "https://userstream.twitter.com:443/1.1/user.json", options, &)
|
94
94
|
end
|
95
95
|
|
96
96
|
# Set a Proc to be run when connection established.
|
@@ -114,7 +114,7 @@ module Twitter
|
|
114
114
|
def request(method, uri, params)
|
115
115
|
before_request.call
|
116
116
|
headers = Twitter::Headers.new(self, method, uri, params).request_headers
|
117
|
-
request = HTTP::Request.new(verb: method, uri: "#{uri}?#{to_url_params(params)}", headers
|
117
|
+
request = HTTP::Request.new(verb: method, uri: "#{uri}?#{to_url_params(params)}", headers:, proxy:)
|
118
118
|
response = Streaming::Response.new do |data|
|
119
119
|
if item = Streaming::MessageParser.parse(data) # rubocop:disable Lint/AssignmentInCondition
|
120
120
|
yield(item)
|
data/lib/twitter/version.rb
CHANGED
@@ -9,12 +9,12 @@ module Twitter
|
|
9
9
|
|
10
10
|
# @return [Integer]
|
11
11
|
def minor
|
12
|
-
|
12
|
+
2
|
13
13
|
end
|
14
14
|
|
15
15
|
# @return [Integer]
|
16
16
|
def patch
|
17
|
-
|
17
|
+
0
|
18
18
|
end
|
19
19
|
|
20
20
|
# @return [Integer, NilClass]
|
@@ -24,12 +24,7 @@ module Twitter
|
|
24
24
|
|
25
25
|
# @return [Hash]
|
26
26
|
def to_h
|
27
|
-
{
|
28
|
-
major: major,
|
29
|
-
minor: minor,
|
30
|
-
patch: patch,
|
31
|
-
pre: pre,
|
32
|
-
}
|
27
|
+
{major:, minor:, patch:, pre:}
|
33
28
|
end
|
34
29
|
|
35
30
|
# @return [Array]
|
data/twitter.gemspec
CHANGED
@@ -3,15 +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.8"
|
7
7
|
spec.add_dependency "buftok", "~> 0.3.0"
|
8
8
|
spec.add_dependency "equalizer", "~> 0.0.11"
|
9
|
-
spec.add_dependency "http", "~> 5.
|
9
|
+
spec.add_dependency "http", "~> 5.2"
|
10
10
|
spec.add_dependency "http-form_data", "~> 2.3"
|
11
|
-
spec.add_dependency "llhttp-ffi", "~> 0.
|
11
|
+
spec.add_dependency "llhttp-ffi", "~> 0.5.0"
|
12
12
|
spec.add_dependency "memoizable", "~> 0.4.0"
|
13
|
-
spec.add_dependency "multipart-post", "~> 2.
|
14
|
-
spec.add_dependency "naught", "~> 1.
|
13
|
+
spec.add_dependency "multipart-post", "~> 2.4"
|
14
|
+
spec.add_dependency "naught", "~> 1.1"
|
15
15
|
spec.add_dependency "simple_oauth", "~> 0.3.0"
|
16
16
|
spec.authors = ["Erik Berlin", "John Nunemaker", "Wynn Netherland", "Steve Richert", "Steve Agalloco"]
|
17
17
|
spec.description = "A Ruby interface to the Twitter API."
|
@@ -19,39 +19,22 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.files = %w[.yardopts CHANGELOG.md CONTRIBUTING.md LICENSE.md README.md twitter.gemspec] + Dir["lib/**/*.rb"]
|
20
20
|
spec.homepage = "https://sferik.github.io/twitter/"
|
21
21
|
spec.licenses = %w[MIT]
|
22
|
-
spec.metadata["rubygems_mfa_required"] = "true"
|
23
|
-
spec.name = "twitter"
|
24
|
-
spec.post_install_message = %q{📣 Attention Twitter Ruby Gem User!
|
25
|
-
If you're seeing this message, that means you're using the old Twitter Ruby gem
|
26
|
-
which is no longer maintained and will not support Twitter API v2.
|
27
|
-
|
28
|
-
🎉 Here's the good news:
|
29
|
-
We recommend switching to the X gem, which supports both v1.1 and v2 to make
|
30
|
-
the transition easier. It's a robust, modern libary that is designed to ensure
|
31
|
-
you'll be able to easily integrate any new changes Twitter/X may roll out.
|
32
|
-
|
33
|
-
🔗 For more details, visit: https://sferik.github.io/x-ruby/
|
34
|
-
|
35
|
-
🤔 Why consider sponsoring?
|
36
|
-
The X gem is free to use, but with new API pricing tiers, it actually costs
|
37
|
-
money to develop and maintain. By contributing to the project, you help us:
|
38
22
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
23
|
+
spec.metadata = {
|
24
|
+
"allowed_push_host" => "https://rubygems.org",
|
25
|
+
"bug_tracker_uri" => "https://github.com/sferik/twitter-ruby/issues",
|
26
|
+
"changelog_uri" => "https://github.com/sferik/twitter-ruby/blob/master/CHANGELOG.md",
|
27
|
+
"documentation_uri" => "https://rubydoc.info/gems/twitter/",
|
28
|
+
"funding_uri" => "https://github.com/sponsors/sferik/",
|
29
|
+
"homepage_uri" => spec.homepage,
|
30
|
+
"rubygems_mfa_required" => "true",
|
31
|
+
"source_code_uri" => "https://github.com/sferik/twitter-ruby",
|
32
|
+
}
|
44
33
|
|
45
|
-
|
46
|
-
|
47
|
-
Building and maintaining an open-source project like this takes a considerable
|
48
|
-
amount of time and effort. Your sponsorship can help sustain this project. Even
|
49
|
-
a small monthly donation makes a huge difference!
|
50
|
-
|
51
|
-
💖 Thanks for considering sponsorship. Together we can make the X gem even better!
|
52
|
-
}
|
34
|
+
spec.name = "twitter"
|
35
|
+
spec.post_install_message = "The `twitter` gem is deprecated and no longer maintained. Use the `x` gem instead."
|
53
36
|
spec.require_paths = %w[lib]
|
54
|
-
spec.required_ruby_version = ">= 3.
|
37
|
+
spec.required_ruby_version = ">= 3.2"
|
55
38
|
spec.summary = spec.description
|
56
39
|
spec.version = Twitter::Version
|
57
40
|
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: 8.0
|
4
|
+
version: 8.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Berlin
|
@@ -9,10 +9,9 @@ authors:
|
|
9
9
|
- Wynn Netherland
|
10
10
|
- Steve Richert
|
11
11
|
- Steve Agalloco
|
12
|
-
autorequire:
|
13
12
|
bindir: bin
|
14
13
|
cert_chain: []
|
15
|
-
date:
|
14
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
16
15
|
dependencies:
|
17
16
|
- !ruby/object:Gem::Dependency
|
18
17
|
name: addressable
|
@@ -20,14 +19,14 @@ dependencies:
|
|
20
19
|
requirements:
|
21
20
|
- - "~>"
|
22
21
|
- !ruby/object:Gem::Version
|
23
|
-
version: '2.
|
22
|
+
version: '2.8'
|
24
23
|
type: :runtime
|
25
24
|
prerelease: false
|
26
25
|
version_requirements: !ruby/object:Gem::Requirement
|
27
26
|
requirements:
|
28
27
|
- - "~>"
|
29
28
|
- !ruby/object:Gem::Version
|
30
|
-
version: '2.
|
29
|
+
version: '2.8'
|
31
30
|
- !ruby/object:Gem::Dependency
|
32
31
|
name: buftok
|
33
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -62,14 +61,14 @@ dependencies:
|
|
62
61
|
requirements:
|
63
62
|
- - "~>"
|
64
63
|
- !ruby/object:Gem::Version
|
65
|
-
version: '5.
|
64
|
+
version: '5.2'
|
66
65
|
type: :runtime
|
67
66
|
prerelease: false
|
68
67
|
version_requirements: !ruby/object:Gem::Requirement
|
69
68
|
requirements:
|
70
69
|
- - "~>"
|
71
70
|
- !ruby/object:Gem::Version
|
72
|
-
version: '5.
|
71
|
+
version: '5.2'
|
73
72
|
- !ruby/object:Gem::Dependency
|
74
73
|
name: http-form_data
|
75
74
|
requirement: !ruby/object:Gem::Requirement
|
@@ -90,14 +89,14 @@ dependencies:
|
|
90
89
|
requirements:
|
91
90
|
- - "~>"
|
92
91
|
- !ruby/object:Gem::Version
|
93
|
-
version: 0.
|
92
|
+
version: 0.5.0
|
94
93
|
type: :runtime
|
95
94
|
prerelease: false
|
96
95
|
version_requirements: !ruby/object:Gem::Requirement
|
97
96
|
requirements:
|
98
97
|
- - "~>"
|
99
98
|
- !ruby/object:Gem::Version
|
100
|
-
version: 0.
|
99
|
+
version: 0.5.0
|
101
100
|
- !ruby/object:Gem::Dependency
|
102
101
|
name: memoizable
|
103
102
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,28 +117,28 @@ dependencies:
|
|
118
117
|
requirements:
|
119
118
|
- - "~>"
|
120
119
|
- !ruby/object:Gem::Version
|
121
|
-
version: '2.
|
120
|
+
version: '2.4'
|
122
121
|
type: :runtime
|
123
122
|
prerelease: false
|
124
123
|
version_requirements: !ruby/object:Gem::Requirement
|
125
124
|
requirements:
|
126
125
|
- - "~>"
|
127
126
|
- !ruby/object:Gem::Version
|
128
|
-
version: '2.
|
127
|
+
version: '2.4'
|
129
128
|
- !ruby/object:Gem::Dependency
|
130
129
|
name: naught
|
131
130
|
requirement: !ruby/object:Gem::Requirement
|
132
131
|
requirements:
|
133
132
|
- - "~>"
|
134
133
|
- !ruby/object:Gem::Version
|
135
|
-
version: '1.
|
134
|
+
version: '1.1'
|
136
135
|
type: :runtime
|
137
136
|
prerelease: false
|
138
137
|
version_requirements: !ruby/object:Gem::Requirement
|
139
138
|
requirements:
|
140
139
|
- - "~>"
|
141
140
|
- !ruby/object:Gem::Version
|
142
|
-
version: '1.
|
141
|
+
version: '1.1'
|
143
142
|
- !ruby/object:Gem::Dependency
|
144
143
|
name: simple_oauth
|
145
144
|
requirement: !ruby/object:Gem::Requirement
|
@@ -263,25 +262,16 @@ homepage: https://sferik.github.io/twitter/
|
|
263
262
|
licenses:
|
264
263
|
- MIT
|
265
264
|
metadata:
|
265
|
+
allowed_push_host: https://rubygems.org
|
266
|
+
bug_tracker_uri: https://github.com/sferik/twitter-ruby/issues
|
267
|
+
changelog_uri: https://github.com/sferik/twitter-ruby/blob/master/CHANGELOG.md
|
268
|
+
documentation_uri: https://rubydoc.info/gems/twitter/
|
269
|
+
funding_uri: https://github.com/sponsors/sferik/
|
270
|
+
homepage_uri: https://sferik.github.io/twitter/
|
266
271
|
rubygems_mfa_required: 'true'
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
recommend switching to the X gem, which supports both v1.1 and v2 to make\nthe transition
|
271
|
-
easier. It's a robust, modern libary that is designed to ensure\nyou'll be able
|
272
|
-
to easily integrate any new changes Twitter/X may roll out.\n\n\U0001F517 For more
|
273
|
-
details, visit: https://sferik.github.io/x-ruby/\n\n\U0001F914 Why consider sponsoring?\nThe
|
274
|
-
X gem is free to use, but with new API pricing tiers, it actually costs\nmoney to
|
275
|
-
develop and maintain. By contributing to the project, you help us:\n\n1. \U0001F6E0
|
276
|
-
\ Maintain the library: Keeping it up-to-date and secure.\n2. \U0001F308 Add new
|
277
|
-
features: Enhancements that make your life easier.\n3. \U0001F4AC Provide support:
|
278
|
-
Faster responses to issues and feature requests.\n⭐️ Bonus: Sponsors will get priority
|
279
|
-
support and influence over the project\nroadmap. We will also list your name or
|
280
|
-
your company's logo on our GitHub page.\n\n\U0001F517 To sponsor, visit: https://github.com/sponsors/sferik\n\nBuilding
|
281
|
-
and maintaining an open-source project like this takes a considerable\namount of
|
282
|
-
time and effort. Your sponsorship can help sustain this project. Even\na small monthly
|
283
|
-
donation makes a huge difference!\n\n\U0001F496 Thanks for considering sponsorship.
|
284
|
-
Together we can make the X gem even better!\n"
|
272
|
+
source_code_uri: https://github.com/sferik/twitter-ruby
|
273
|
+
post_install_message: The `twitter` gem is deprecated and no longer maintained. Use
|
274
|
+
the `x` gem instead.
|
285
275
|
rdoc_options: []
|
286
276
|
require_paths:
|
287
277
|
- lib
|
@@ -289,15 +279,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
289
279
|
requirements:
|
290
280
|
- - ">="
|
291
281
|
- !ruby/object:Gem::Version
|
292
|
-
version: '3.
|
282
|
+
version: '3.2'
|
293
283
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
294
284
|
requirements:
|
295
285
|
- - ">="
|
296
286
|
- !ruby/object:Gem::Version
|
297
287
|
version: '0'
|
298
288
|
requirements: []
|
299
|
-
rubygems_version: 3.
|
300
|
-
signing_key:
|
289
|
+
rubygems_version: 3.6.8
|
301
290
|
specification_version: 4
|
302
291
|
summary: A Ruby interface to the Twitter API.
|
303
292
|
test_files: []
|