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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 11e677ef797cfd3ab6475560db947569fd11c3b081e2c0b922b74430a2f788e5
4
- data.tar.gz: 65f083e2f1c64ddcc4366a7ff8d948d26c7cb20fdff0e29113d26ffa35aa50d2
3
+ metadata.gz: 59d807ebfc2128393a4ab392ac3a5ebd0d7f544a834f1ae08504cbe71bbde002
4
+ data.tar.gz: 9113658774b1b0d05cdba8f10a741d938a29c5a0b54ef35cf6db0d005a0dc3a8
5
5
  SHA512:
6
- metadata.gz: 5196906962cd60016ecac0ef288c486709ac931ce7220958ce164a99d99c6916b4d18cc5481e57d863208a21d776e1f77188ea9aec763c5a20a6892650ceda11
7
- data.tar.gz: bfcc66dbf3956ad6dde755b41ccf7c3ac1c5cedce125ba932e865f9677204ce4b7c07705b9afacf8b0d75775641c71a17afa51aa76fbd82d20ec1d8088192948
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-2023 Erik Berlin, John Nunemaker, Wynn Netherland, Steve Richert, Steve Agalloco
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 to make
8
- the transition easier. It’s a robust, modern libary that is designed to ensure
9
- you’ll be able to easily integrate any new changes Twitter/X may roll out.
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://twitter.com/gem
38
+ [follow]: https://x.com/gem
39
39
 
40
40
  ## Copyright
41
- Copyright (c) 2006-2023 Erik Berlin, John Nunemaker, Wynn Netherland, Steve Richert, Steve Agalloco.
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
@@ -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: consumer_key,
36
- consumer_secret: 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: sender_id,
38
+ sender_id:,
39
39
  recipient: {id: recipient_id},
40
- recipient_id: recipient_id,
41
- text: text}
40
+ recipient_id:,
41
+ text:}
42
42
  end
43
43
  end
44
44
  end
@@ -32,7 +32,7 @@ module Twitter
32
32
  {
33
33
  id: attrs[:id].to_i,
34
34
  created_at: Time.at(attrs[:created_timestamp].to_i / 1000.0),
35
- text: text,
35
+ text:,
36
36
  name: attrs[:name],
37
37
  entities: attrs.dig(:message_data, :entities),
38
38
  }
@@ -17,7 +17,7 @@ module Twitter
17
17
  json_options = {
18
18
  welcome_message: {
19
19
  message_data: {
20
- text: 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: 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: limit), :welcome_messages, Twitter::DirectMessages::WelcomeMessageWrapper)
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: 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: limit), :welcome_message_rules, Twitter::DirectMessages::WelcomeMessageRuleWrapper)
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: limit), :events, Twitter::DirectMessageEvent)
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: 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: text, attachment: {type: "media", media: {id: media_id}}}}}
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: text}.merge(options)}}}
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
@@ -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: name), Twitter::List)
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: 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: query), Twitter::SavedSearch)
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, &block)
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, &block)
193
+ tweets.empty? ? collection.flatten : collect_with_max_id(collection, tweets.last.id - 1, &)
194
194
  end
195
195
  end
196
196
  end
@@ -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: status), Twitter::Tweet)
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: media_type,
32
- media_category: 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: 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: media_id).perform
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: media_id).perform
66
+ command: "STATUS", media_id:).perform
67
67
  end
68
68
  response
69
69
  end
@@ -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: device), Twitter::User)
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: banner))
340
+ perform_post("/1.1/account/update_profile_banner.json", options.merge(banner:))
341
341
  true
342
342
  end
343
343
 
@@ -163,7 +163,7 @@ module Twitter
163
163
  # @return nil
164
164
  def perform_requests(request_method, path, ids)
165
165
  ids.each do |id|
166
- perform_request(request_method, path, id: id)
166
+ perform_request(request_method, path, id:)
167
167
  end
168
168
  nil
169
169
  end
@@ -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 = {}, &block)
38
- request(:post, "https://stream.twitter.com:443/1.1/statuses/filter.json", options, &block)
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 = {}, &block)
50
- request(:get, "https://stream.twitter.com:443/1.1/statuses/firehose.json", options, &block)
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 = {}, &block)
59
- request(:get, "https://stream.twitter.com:443/1.1/statuses/sample.json", options, &block)
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, &block)
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(",")), &block)
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 = {}, &block)
93
- request(:get, "https://userstream.twitter.com:443/1.1/user.json", options, &block)
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: headers, proxy: proxy)
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)
@@ -9,12 +9,12 @@ module Twitter
9
9
 
10
10
  # @return [Integer]
11
11
  def minor
12
- 0
12
+ 2
13
13
  end
14
14
 
15
15
  # @return [Integer]
16
16
  def patch
17
- 1
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.3"
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.1"
9
+ spec.add_dependency "http", "~> 5.2"
10
10
  spec.add_dependency "http-form_data", "~> 2.3"
11
- spec.add_dependency "llhttp-ffi", "~> 0.4.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.0"
14
- spec.add_dependency "naught", "~> 1.0"
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
- 1. 🛠 Maintain the library: Keeping it up-to-date and secure.
40
- 2. 🌈 Add new features: Enhancements that make your life easier.
41
- 3. 💬 Provide support: Faster responses to issues and feature requests.
42
- ⭐️ Bonus: Sponsors will get priority support and influence over the project
43
- roadmap. We will also list your name or your company's logo on our GitHub page.
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
- 🔗 To sponsor, visit: https://github.com/sponsors/sferik
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.0"
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.1
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: 2023-09-20 00:00:00.000000000 Z
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.3'
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.3'
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.1'
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.1'
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.4.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.4.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.0'
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.0'
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.0'
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.0'
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
- post_install_message: "\U0001F4E3 Attention Twitter Ruby Gem User!\nIf you're seeing
268
- this message, that means you're using the old Twitter Ruby gem\nwhich is no longer
269
- maintained and will not support Twitter API v2.\n\n\U0001F389 Here's the good news:\nWe
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.0'
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.4.19
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: []