twitter 8.1.0 → 8.3.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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +1 -1
  3. data/README.md +173 -11
  4. data/lib/twitter/arguments.rb +14 -1
  5. data/lib/twitter/base.rb +72 -11
  6. data/lib/twitter/basic_user.rb +7 -1
  7. data/lib/twitter/client.rb +94 -3
  8. data/lib/twitter/creatable.rb +11 -2
  9. data/lib/twitter/cursor.rb +58 -11
  10. data/lib/twitter/direct_message.rb +32 -4
  11. data/lib/twitter/direct_message_event.rb +34 -10
  12. data/lib/twitter/direct_messages/welcome_message.rb +22 -1
  13. data/lib/twitter/direct_messages/welcome_message_rule.rb +7 -0
  14. data/lib/twitter/direct_messages/welcome_message_rule_wrapper.rb +26 -3
  15. data/lib/twitter/direct_messages/welcome_message_wrapper.rb +36 -11
  16. data/lib/twitter/entities.rb +84 -8
  17. data/lib/twitter/entity/hashtag.rb +7 -1
  18. data/lib/twitter/entity/symbol.rb +7 -1
  19. data/lib/twitter/entity/uri.rb +2 -1
  20. data/lib/twitter/entity/user_mention.rb +20 -1
  21. data/lib/twitter/entity.rb +7 -1
  22. data/lib/twitter/enumerable.rb +20 -3
  23. data/lib/twitter/error.rb +137 -61
  24. data/lib/twitter/factory.rb +9 -5
  25. data/lib/twitter/geo/point.rb +37 -5
  26. data/lib/twitter/geo/polygon.rb +1 -0
  27. data/lib/twitter/geo.rb +16 -2
  28. data/lib/twitter/geo_factory.rb +7 -3
  29. data/lib/twitter/geo_results.rb +39 -8
  30. data/lib/twitter/headers.rb +44 -7
  31. data/lib/twitter/identity.rb +13 -3
  32. data/lib/twitter/language.rb +21 -1
  33. data/lib/twitter/list.rb +101 -11
  34. data/lib/twitter/media/animated_gif.rb +1 -0
  35. data/lib/twitter/media/photo.rb +19 -3
  36. data/lib/twitter/media/video.rb +21 -3
  37. data/lib/twitter/media/video_info.rb +15 -1
  38. data/lib/twitter/media_factory.rb +7 -3
  39. data/lib/twitter/metadata.rb +14 -1
  40. data/lib/twitter/null_object.rb +16 -14
  41. data/lib/twitter/oembed.rb +56 -2
  42. data/lib/twitter/place.rb +74 -6
  43. data/lib/twitter/premium_search_results.rb +87 -18
  44. data/lib/twitter/profile.rb +100 -44
  45. data/lib/twitter/profile_banner.rb +9 -4
  46. data/lib/twitter/rate_limit.rb +32 -3
  47. data/lib/twitter/relationship.rb +8 -5
  48. data/lib/twitter/rest/account_activity.rb +55 -26
  49. data/lib/twitter/rest/api.rb +2 -0
  50. data/lib/twitter/rest/client.rb +18 -0
  51. data/lib/twitter/rest/direct_messages/welcome_messages.rb +89 -18
  52. data/lib/twitter/rest/direct_messages.rb +158 -94
  53. data/lib/twitter/rest/favorites.rb +57 -21
  54. data/lib/twitter/rest/form_encoder.rb +57 -17
  55. data/lib/twitter/rest/friends_and_followers.rb +101 -35
  56. data/lib/twitter/rest/help.rb +13 -3
  57. data/lib/twitter/rest/lists.rb +133 -45
  58. data/lib/twitter/rest/oauth.rb +23 -17
  59. data/lib/twitter/rest/places_and_geo.rb +44 -28
  60. data/lib/twitter/rest/premium_search.rb +18 -13
  61. data/lib/twitter/rest/request.rb +171 -53
  62. data/lib/twitter/rest/saved_searches.rb +22 -7
  63. data/lib/twitter/rest/search.rb +20 -16
  64. data/lib/twitter/rest/spam_reporting.rb +5 -1
  65. data/lib/twitter/rest/suggested_users.rb +14 -5
  66. data/lib/twitter/rest/timelines.rb +92 -52
  67. data/lib/twitter/rest/trends.rb +31 -12
  68. data/lib/twitter/rest/tweets.rb +145 -88
  69. data/lib/twitter/rest/undocumented.rb +11 -2
  70. data/lib/twitter/rest/upload_utils.rb +42 -26
  71. data/lib/twitter/rest/users.rb +150 -71
  72. data/lib/twitter/rest/utils.rb +135 -39
  73. data/lib/twitter/saved_search.rb +23 -2
  74. data/lib/twitter/search_results.rb +62 -17
  75. data/lib/twitter/settings.rb +37 -11
  76. data/lib/twitter/size.rb +37 -3
  77. data/lib/twitter/source_user.rb +4 -3
  78. data/lib/twitter/streaming/client.rb +60 -8
  79. data/lib/twitter/streaming/connection.rb +55 -8
  80. data/lib/twitter/streaming/deleted_tweet.rb +8 -0
  81. data/lib/twitter/streaming/event.rb +43 -1
  82. data/lib/twitter/streaming/friend_list.rb +1 -0
  83. data/lib/twitter/streaming/message_parser.rb +20 -10
  84. data/lib/twitter/streaming/response.rb +31 -5
  85. data/lib/twitter/streaming/stall_warning.rb +23 -0
  86. data/lib/twitter/suggestion.rb +25 -1
  87. data/lib/twitter/target_user.rb +2 -1
  88. data/lib/twitter/trend.rb +29 -1
  89. data/lib/twitter/trend_results.rb +50 -7
  90. data/lib/twitter/tweet.rb +180 -21
  91. data/lib/twitter/user.rb +289 -53
  92. data/lib/twitter/utils.rb +12 -13
  93. data/lib/twitter/variant.rb +12 -1
  94. data/lib/twitter/version.rb +66 -29
  95. data/lib/twitter.rb +6 -1
  96. metadata +29 -73
  97. data/.yardopts +0 -16
  98. data/CHANGELOG.md +0 -1035
  99. data/CONTRIBUTING.md +0 -49
  100. data/twitter.gemspec +0 -57
@@ -1,40 +1,77 @@
1
1
  module Twitter
2
+ # Provides version information for the Twitter gem
3
+ #
4
+ # @api public
2
5
  module Version
3
- module_function
6
+ class << self
7
+ # The major version number
8
+ #
9
+ # @api private
10
+ # @example
11
+ # Twitter::Version.major # => 8
12
+ # @return [Integer]
13
+ def major
14
+ 8
15
+ end
4
16
 
5
- # @return [Integer]
6
- def major
7
- 8
8
- end
17
+ # The minor version number
18
+ #
19
+ # @api private
20
+ # @example
21
+ # Twitter::Version.minor # => 3
22
+ # @return [Integer]
23
+ def minor
24
+ 3
25
+ end
9
26
 
10
- # @return [Integer]
11
- def minor
12
- 1
13
- end
27
+ # The patch version number
28
+ #
29
+ # @api private
30
+ # @example
31
+ # Twitter::Version.patch # => 0
32
+ # @return [Integer]
33
+ def patch
34
+ 0
35
+ end
14
36
 
15
- # @return [Integer]
16
- def patch
17
- 0
18
- end
37
+ # The pre-release version identifier
38
+ #
39
+ # @api private
40
+ # @example
41
+ # Twitter::Version.pre # => nil
42
+ # @return [Integer, NilClass]
43
+ def pre
44
+ end
19
45
 
20
- # @return [Integer, NilClass]
21
- def pre
22
- nil
23
- end
46
+ # The version as a hash
47
+ #
48
+ # @api private
49
+ # @example
50
+ # Twitter::Version.to_h # => {major: 8, minor: 3, patch: 0, pre: nil}
51
+ # @return [Hash]
52
+ def to_h
53
+ {major:, minor:, patch:, pre: nil}
54
+ end
24
55
 
25
- # @return [Hash]
26
- def to_h
27
- {major:, minor:, patch:, pre:}
28
- end
29
-
30
- # @return [Array]
31
- def to_a
32
- [major, minor, patch, pre].compact
33
- end
56
+ # The version as an array
57
+ #
58
+ # @api private
59
+ # @example
60
+ # Twitter::Version.to_a # => [8, 3, 0]
61
+ # @return [Array]
62
+ def to_a
63
+ [major, minor, patch]
64
+ end
34
65
 
35
- # @return [String]
36
- def to_s
37
- to_a.join(".")
66
+ # The version as a string
67
+ #
68
+ # @api private
69
+ # @example
70
+ # Twitter::Version.to_s # => "8.3.0"
71
+ # @return [String]
72
+ def to_s
73
+ to_a.join(".")
74
+ end
38
75
  end
39
76
  end
40
77
  end
data/lib/twitter.rb CHANGED
@@ -1,4 +1,9 @@
1
- require "addressable/uri"
1
+ require "uri"
2
+
3
+ # Ruby interface to the Twitter API
4
+ module Twitter
5
+ end
6
+
2
7
  require "twitter/base"
3
8
  require "twitter/cursor"
4
9
  require "twitter/direct_message"
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.1.0
4
+ version: 8.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Berlin
@@ -9,97 +9,96 @@ 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: 2024-04-30 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
- name: addressable
17
+ name: base64
19
18
  requirement: !ruby/object:Gem::Requirement
20
19
  requirements:
21
20
  - - "~>"
22
21
  - !ruby/object:Gem::Version
23
- version: '2.8'
22
+ version: 0.3.0
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.8'
29
+ version: 0.3.0
31
30
  - !ruby/object:Gem::Dependency
32
31
  name: buftok
33
32
  requirement: !ruby/object:Gem::Requirement
34
33
  requirements:
35
34
  - - "~>"
36
35
  - !ruby/object:Gem::Version
37
- version: 0.3.0
36
+ version: '1.0'
38
37
  type: :runtime
39
38
  prerelease: false
40
39
  version_requirements: !ruby/object:Gem::Requirement
41
40
  requirements:
42
41
  - - "~>"
43
42
  - !ruby/object:Gem::Version
44
- version: 0.3.0
43
+ version: '1.0'
45
44
  - !ruby/object:Gem::Dependency
46
45
  name: equalizer
47
46
  requirement: !ruby/object:Gem::Requirement
48
47
  requirements:
49
48
  - - "~>"
50
49
  - !ruby/object:Gem::Version
51
- version: 0.0.11
50
+ version: '1.0'
52
51
  type: :runtime
53
52
  prerelease: false
54
53
  version_requirements: !ruby/object:Gem::Requirement
55
54
  requirements:
56
55
  - - "~>"
57
56
  - !ruby/object:Gem::Version
58
- version: 0.0.11
57
+ version: '1.0'
59
58
  - !ruby/object:Gem::Dependency
60
59
  name: http
61
60
  requirement: !ruby/object:Gem::Requirement
62
61
  requirements:
63
62
  - - "~>"
64
63
  - !ruby/object:Gem::Version
65
- version: '5.2'
64
+ version: '6.0'
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.2'
71
+ version: '6.0'
73
72
  - !ruby/object:Gem::Dependency
74
- name: http-form_data
73
+ name: memoizable
75
74
  requirement: !ruby/object:Gem::Requirement
76
75
  requirements:
77
76
  - - "~>"
78
77
  - !ruby/object:Gem::Version
79
- version: '2.3'
78
+ version: 0.5.1
80
79
  type: :runtime
81
80
  prerelease: false
82
81
  version_requirements: !ruby/object:Gem::Requirement
83
82
  requirements:
84
83
  - - "~>"
85
84
  - !ruby/object:Gem::Version
86
- version: '2.3'
85
+ version: 0.5.1
87
86
  - !ruby/object:Gem::Dependency
88
- name: llhttp-ffi
87
+ name: naught
89
88
  requirement: !ruby/object:Gem::Requirement
90
89
  requirements:
91
90
  - - "~>"
92
91
  - !ruby/object:Gem::Version
93
- version: 0.5.0
92
+ version: '2.3'
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.5.0
99
+ version: '2.3'
101
100
  - !ruby/object:Gem::Dependency
102
- name: memoizable
101
+ name: simple_oauth
103
102
  requirement: !ruby/object:Gem::Requirement
104
103
  requirements:
105
104
  - - "~>"
@@ -113,21 +112,7 @@ dependencies:
113
112
  - !ruby/object:Gem::Version
114
113
  version: 0.4.0
115
114
  - !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.4'
122
- type: :runtime
123
- prerelease: false
124
- version_requirements: !ruby/object:Gem::Requirement
125
- requirements:
126
- - - "~>"
127
- - !ruby/object:Gem::Version
128
- version: '2.4'
129
- - !ruby/object:Gem::Dependency
130
- name: naught
115
+ name: uri
131
116
  requirement: !ruby/object:Gem::Requirement
132
117
  requirements:
133
118
  - - "~>"
@@ -140,20 +125,6 @@ dependencies:
140
125
  - - "~>"
141
126
  - !ruby/object:Gem::Version
142
127
  version: '1.1'
143
- - !ruby/object:Gem::Dependency
144
- name: simple_oauth
145
- requirement: !ruby/object:Gem::Requirement
146
- requirements:
147
- - - "~>"
148
- - !ruby/object:Gem::Version
149
- version: 0.3.0
150
- type: :runtime
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- requirements:
154
- - - "~>"
155
- - !ruby/object:Gem::Version
156
- version: 0.3.0
157
128
  description: A Ruby interface to the Twitter API.
158
129
  email:
159
130
  - sferik@gmail.com
@@ -161,9 +132,6 @@ executables: []
161
132
  extensions: []
162
133
  extra_rdoc_files: []
163
134
  files:
164
- - ".yardopts"
165
- - CHANGELOG.md
166
- - CONTRIBUTING.md
167
135
  - LICENSE.md
168
136
  - README.md
169
137
  - lib/twitter.rb
@@ -258,29 +226,18 @@ files:
258
226
  - lib/twitter/utils.rb
259
227
  - lib/twitter/variant.rb
260
228
  - lib/twitter/version.rb
261
- - twitter.gemspec
262
- homepage: https://sferik.github.io/twitter/
229
+ homepage: https://github.com/sferik/twitter-ruby
263
230
  licenses:
264
231
  - MIT
265
232
  metadata:
233
+ allowed_push_host: https://rubygems.org
234
+ bug_tracker_uri: https://github.com/sferik/twitter-ruby/issues
235
+ changelog_uri: https://github.com/sferik/twitter-ruby/blob/master/CHANGELOG.md
236
+ documentation_uri: https://rubydoc.info/gems/twitter
237
+ funding_uri: https://github.com/sponsors/sferik/
238
+ homepage_uri: https://sferik.github.io/twitter
266
239
  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 API v1.1 and v2. It's\na robust,
271
- modern libary that is designed to ensure you'll be able to easily\nintegrate forthcoming
272
- API changes.\n\n\U0001F517 For more details, visit: https://sferik.github.io/x-ruby/\n\n\U0001F914
273
- Please consider sponsoring\nThe X gem is free to use, but with new API pricing tiers,
274
- it actually costs\nmoney to develop and maintain. By contributing to the project,
275
- you help:\n\n1. \U0001F6E0 Maintain the library: Keeping it up-to-date and secure.\n2.
276
- \U0001F308 Add new features: Enhancements that make your life easier.\n3. \U0001F4AC
277
- Provide support: Faster responses to issues and feature requests.\n⭐️ Bonus: Sponsors
278
- will get priority influence over the project roadmap.\nYour company's logo will
279
- also be displayed on the project's GitHub page.\n\n\U0001F517 To sponsor, visit:
280
- https://github.com/sponsors/sferik\n\nBuilding and maintaining an open-source project
281
- like this takes a considerable\namount of time and effort. Your sponsorship can
282
- help sustain this project. Even\na small monthly donation makes a big difference!\n\n\U0001F496
283
- Thanks for considering sponsorship. Together we can make the X gem even better!\n"
240
+ source_code_uri: https://github.com/sferik/twitter-ruby
284
241
  rdoc_options: []
285
242
  require_paths:
286
243
  - lib
@@ -288,15 +245,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
288
245
  requirements:
289
246
  - - ">="
290
247
  - !ruby/object:Gem::Version
291
- version: 3.1.4
248
+ version: '3.3'
292
249
  required_rubygems_version: !ruby/object:Gem::Requirement
293
250
  requirements:
294
251
  - - ">="
295
252
  - !ruby/object:Gem::Version
296
253
  version: '0'
297
254
  requirements: []
298
- rubygems_version: 3.5.9
299
- signing_key:
255
+ rubygems_version: 4.0.9
300
256
  specification_version: 4
301
257
  summary: A Ruby interface to the Twitter API.
302
258
  test_files: []
data/.yardopts DELETED
@@ -1,16 +0,0 @@
1
- --no-private
2
- --protected
3
- --tag rate_limited:"Rate Limited?"
4
- --tag authentication:"Authentication"
5
- --markup markdown
6
- -
7
- CHANGELOG.md
8
- CONTRIBUTING.md
9
- LICENSE.md
10
- README.md
11
- examples/AllTweets.md
12
- examples/Configuration.md
13
- examples/RateLimiting.md
14
- examples/Search.md
15
- examples/Streaming.md
16
- examples/Update.md