x-twitter-scraper 0.10.3 → 0.10.5
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 +19 -2
- data/README.md +38 -40
- data/SECURITY.md +3 -3
- data/lib/x_twitter_scraper/internal/type/base_model.rb +2 -2
- data/lib/x_twitter_scraper/internal/type/enum.rb +1 -2
- data/lib/x_twitter_scraper/request_options.rb +2 -4
- data/lib/x_twitter_scraper/resources/monitors/keywords.rb +1 -1
- data/lib/x_twitter_scraper/resources/monitors.rb +1 -1
- data/lib/x_twitter_scraper/version.rb +1 -1
- data/rbi/x_twitter_scraper/request_options.rbi +2 -4
- data/rbi/x_twitter_scraper/resources/monitors/keywords.rbi +1 -1
- data/rbi/x_twitter_scraper/resources/monitors.rbi +1 -1
- metadata +13 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 43da66645ccb25ebf91b2fce7abd6f6e3c9ceaadf07a86086839fd29bb0e2b9f
|
|
4
|
+
data.tar.gz: 57f8e8b8924975b71f79ed2f7a25e5d6b9a42024a11b489a14ec1a2a0536a016
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 32e8fbf3f54f3717f81c99b7551a44ed0d572ce900f9bae41d259ac8f4a30111f89cdd49d4355989d52a9a34ea4e3e05daa98686357b829eda37886217eb2da7
|
|
7
|
+
data.tar.gz: 71b43f3cfcc7a21d9c1999210eb0f283d273ff28664aeb2b2eb980c8509f49d618a1f06f91be66fc5d226c585f7ba700375618a98898483f1ca1a7bd7627668f
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.10.5 (2026-10-13)
|
|
4
|
+
|
|
5
|
+
[Full changelog from v0.10.4 to v0.10.5](https://github.com/Xquik-dev/x-twitter-scraper-ruby/compare/v0.10.4...v0.10.5)
|
|
6
|
+
|
|
7
|
+
### Documentation
|
|
8
|
+
|
|
9
|
+
* The README title is now "X API & Twitter API Ruby SDK by Xquik".
|
|
10
|
+
* The README says near the top what Xquik is, how it bills and that it is not affiliated with X Corp.
|
|
11
|
+
* Doc comments use the current price. An active monitor costs 30 credits per hour.
|
|
12
|
+
* The gem page gains a description and links to the docs, the changelog and the issue tracker.
|
|
13
|
+
|
|
14
|
+
## 0.10.4 (2026-08-21)
|
|
15
|
+
|
|
16
|
+
Full Changelog: [v0.10.3...v0.10.4](https://github.com/Xquik-dev/x-twitter-scraper-ruby/compare/v0.10.3...v0.10.4)
|
|
17
|
+
|
|
18
|
+
### Documentation
|
|
19
|
+
|
|
20
|
+
* Remove repeated SDK copy and repair public links.
|
|
21
|
+
|
|
3
22
|
## 0.10.3 (2026-08-21)
|
|
4
23
|
|
|
5
24
|
Full Changelog: [v0.10.2...v0.10.3](https://github.com/Xquik-dev/x-twitter-scraper-ruby/compare/v0.10.2...v0.10.3)
|
|
@@ -273,8 +292,6 @@ Full Changelog: [v0.1.0...v0.2.0](https://github.com/Xquik-dev/x-twitter-scraper
|
|
|
273
292
|
|
|
274
293
|
## 0.1.0 (2026-03-30)
|
|
275
294
|
|
|
276
|
-
Full Changelog: [v0.0.1...v0.1.0](https://github.com/Xquik-dev/x-twitter-scraper-ruby/compare/v0.0.1...v0.1.0)
|
|
277
|
-
|
|
278
295
|
### Features
|
|
279
296
|
|
|
280
297
|
* **api:** api update ([772ffdd](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/772ffdd682ee96f94334441b9fc5b1e109559993))
|
data/README.md
CHANGED
|
@@ -1,14 +1,22 @@
|
|
|
1
|
-
#
|
|
1
|
+
# X API & Twitter API Ruby SDK by Xquik
|
|
2
2
|
|
|
3
3
|
[](https://www.bestpractices.dev/projects/13739)
|
|
4
4
|
|
|
5
|
-
Use
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Use this X API & Twitter API SDK to work with X from Ruby.
|
|
6
|
+
It works as a Twitter scraper & tweet scraper for search, profiles & followers.
|
|
7
|
+
Scrape Twitter timelines, lists, communities & trends into typed results.
|
|
8
|
+
Manage media, webhooks, monitors & X automation with typed requests.
|
|
9
|
+
It provides a Twitter API alternative through documented Xquik REST routes.
|
|
10
|
+
|
|
11
|
+
Xquik is the world's fastest and cheapest X Twitter scraper service with the most complete X data.
|
|
12
|
+
Xquik charges only for delivered, unique, filter-matching results and never pads rows.
|
|
13
|
+
|
|
14
|
+
> Xquik is an independent third-party service. Not affiliated with X Corp.
|
|
15
|
+
> "Twitter" and "X" are trademarks of X Corp.
|
|
8
16
|
|
|
9
17
|
[Ruby SDK Guide](https://docs.xquik.com/sdks/ruby) | [REST API](https://docs.xquik.com/api-reference/overview) | [RubyDoc](https://gemdocs.org/gems/x-twitter-scraper) | [Webhooks](https://docs.xquik.com/api-reference/webhooks/create)
|
|
10
18
|
|
|
11
|
-
## Common Twitter & X
|
|
19
|
+
## Common Twitter & X tasks
|
|
12
20
|
|
|
13
21
|
| Task | REST Route | Usage |
|
|
14
22
|
| --- | --- | --- |
|
|
@@ -24,12 +32,14 @@ Use documented Xquik REST routes as a Twitter API alternative.
|
|
|
24
32
|
|
|
25
33
|
## Installation
|
|
26
34
|
|
|
27
|
-
|
|
35
|
+
Requires Ruby 3.2.0 or higher.
|
|
36
|
+
|
|
37
|
+
Add the gem to your `Gemfile`.
|
|
28
38
|
|
|
29
39
|
<!-- x-release-please-start-version -->
|
|
30
40
|
|
|
31
41
|
```ruby
|
|
32
|
-
gem "x-twitter-scraper", "~> 0.10.
|
|
42
|
+
gem "x-twitter-scraper", "~> 0.10.5"
|
|
33
43
|
```
|
|
34
44
|
|
|
35
45
|
<!-- x-release-please-end -->
|
|
@@ -41,7 +51,7 @@ require "bundler/setup"
|
|
|
41
51
|
require "x_twitter_scraper"
|
|
42
52
|
|
|
43
53
|
x_twitter_scraper = XTwitterScraper::Client.new(
|
|
44
|
-
api_key: ENV["X_TWITTER_SCRAPER_API_KEY"] #
|
|
54
|
+
api_key: ENV["X_TWITTER_SCRAPER_API_KEY"] # Optional; the client reads this variable.
|
|
45
55
|
)
|
|
46
56
|
|
|
47
57
|
response = x_twitter_scraper.x.tweets.search(q: "from:elonmusk", limit: 10)
|
|
@@ -49,9 +59,9 @@ response = x_twitter_scraper.x.tweets.search(q: "from:elonmusk", limit: 10)
|
|
|
49
59
|
puts(response)
|
|
50
60
|
```
|
|
51
61
|
|
|
52
|
-
### Handling
|
|
62
|
+
### Handling errors
|
|
53
63
|
|
|
54
|
-
The SDK raises an `APIError` subclass for connection failures and non-2xx responses
|
|
64
|
+
The SDK raises an `APIError` subclass for connection failures and non-2xx responses.
|
|
55
65
|
|
|
56
66
|
```ruby
|
|
57
67
|
begin
|
|
@@ -67,8 +77,6 @@ rescue XTwitterScraper::Errors::APIStatusError => e
|
|
|
67
77
|
end
|
|
68
78
|
```
|
|
69
79
|
|
|
70
|
-
The SDK uses these error classes:
|
|
71
|
-
|
|
72
80
|
| Cause | Error Type |
|
|
73
81
|
| ---------------- | -------------------------- |
|
|
74
82
|
| HTTP 400 | `BadRequestError` |
|
|
@@ -87,40 +95,37 @@ The SDK uses these error classes:
|
|
|
87
95
|
|
|
88
96
|
The SDK retries connection errors, timeouts & HTTP 408, 409, 429, and 5xx responses.
|
|
89
97
|
It uses exponential backoff with 2 retries by default.
|
|
90
|
-
Set `max_retries` to change or disable retries
|
|
98
|
+
Set `max_retries` to change or disable retries.
|
|
91
99
|
|
|
92
100
|
```ruby
|
|
93
|
-
#
|
|
101
|
+
# Change the client default.
|
|
94
102
|
x_twitter_scraper = XTwitterScraper::Client.new(
|
|
95
|
-
max_retries: 0
|
|
103
|
+
max_retries: 0
|
|
96
104
|
)
|
|
97
105
|
|
|
98
|
-
# Override one request
|
|
106
|
+
# Override one request.
|
|
99
107
|
x_twitter_scraper.account.retrieve(request_options: {max_retries: 5})
|
|
100
108
|
```
|
|
101
109
|
|
|
102
110
|
### Timeouts
|
|
103
111
|
|
|
104
|
-
Requests time out after 60 seconds. Set `timeout` to change or disable this limit
|
|
112
|
+
Requests time out after 60 seconds. Set `timeout` to change or disable this limit.
|
|
105
113
|
|
|
106
114
|
```ruby
|
|
107
|
-
#
|
|
115
|
+
# Change the client default.
|
|
108
116
|
x_twitter_scraper = XTwitterScraper::Client.new(
|
|
109
|
-
timeout: nil
|
|
117
|
+
timeout: nil
|
|
110
118
|
)
|
|
111
119
|
|
|
112
|
-
# Override one request
|
|
120
|
+
# Override one request.
|
|
113
121
|
x_twitter_scraper.account.retrieve(request_options: {timeout: 5})
|
|
114
122
|
```
|
|
115
123
|
|
|
116
124
|
Timeouts raise `XTwitterScraper::Errors::APITimeoutError` and follow the retry policy.
|
|
117
125
|
|
|
118
|
-
##
|
|
119
|
-
|
|
120
|
-
### BaseModel
|
|
126
|
+
## BaseModel
|
|
121
127
|
|
|
122
|
-
All parameter and response objects inherit from `XTwitterScraper::Internal::Type::BaseModel
|
|
123
|
-
The base model provides these operations:
|
|
128
|
+
All parameter and response objects inherit from `XTwitterScraper::Internal::Type::BaseModel` and support these operations.
|
|
124
129
|
|
|
125
130
|
1. Access known and unknown fields with `obj[:prop]`.
|
|
126
131
|
2. Destructure fields with `obj => {prop: prop}` or pattern matching.
|
|
@@ -128,7 +133,7 @@ The base model provides these operations:
|
|
|
128
133
|
4. Print classes and instances in a readable format.
|
|
129
134
|
5. Convert values with `#to_h`, `#deep_to_h`, `#to_json`, or `#to_yaml`.
|
|
130
135
|
|
|
131
|
-
|
|
136
|
+
## Custom requests
|
|
132
137
|
|
|
133
138
|
Use `extra_query`, `extra_body`, or `extra_headers` under `request_options`.
|
|
134
139
|
Matching `extra_` values override documented parameters.
|
|
@@ -146,7 +151,7 @@ account =
|
|
|
146
151
|
puts(account[:my_undocumented_property])
|
|
147
152
|
```
|
|
148
153
|
|
|
149
|
-
Use `client.request` for undocumented endpoints while retaining authentication and retries
|
|
154
|
+
Use `client.request` for undocumented endpoints while retaining authentication and retries.
|
|
150
155
|
|
|
151
156
|
```ruby
|
|
152
157
|
response = client.request(
|
|
@@ -158,7 +163,7 @@ response = client.request(
|
|
|
158
163
|
)
|
|
159
164
|
```
|
|
160
165
|
|
|
161
|
-
|
|
166
|
+
## Concurrency & connection pooling
|
|
162
167
|
|
|
163
168
|
Clients are thread-safe. Fork them only when no HTTP requests are in flight.
|
|
164
169
|
Each client has an HTTP connection pool with a default size of 99.
|
|
@@ -170,7 +175,7 @@ Other SDK classes do not lock their data.
|
|
|
170
175
|
|
|
171
176
|
The gem ships [RBI](https://sorbet.org/docs/rbi) definitions without `sorbet-runtime`.
|
|
172
177
|
|
|
173
|
-
Pass request hashes or typed parameter objects
|
|
178
|
+
Pass request hashes or typed parameter objects.
|
|
174
179
|
|
|
175
180
|
```ruby
|
|
176
181
|
# Hashes work without type safety:
|
|
@@ -183,7 +188,7 @@ x_twitter_scraper.x.tweets.search(**params)
|
|
|
183
188
|
|
|
184
189
|
### Enums
|
|
185
190
|
|
|
186
|
-
Tagged symbols replace [`T::Enum`](https://sorbet.org/docs/tenum) and remain runtime primitives
|
|
191
|
+
Tagged symbols replace [`T::Enum`](https://sorbet.org/docs/tenum) and remain runtime primitives.
|
|
187
192
|
|
|
188
193
|
```ruby
|
|
189
194
|
# :en
|
|
@@ -193,7 +198,7 @@ puts(XTwitterScraper::AccountUpdateLocaleParams::Locale::EN)
|
|
|
193
198
|
T.reveal_type(XTwitterScraper::AccountUpdateLocaleParams::Locale::EN)
|
|
194
199
|
```
|
|
195
200
|
|
|
196
|
-
Enum parameters accept constants or literal values
|
|
201
|
+
Enum parameters accept constants or literal values.
|
|
197
202
|
|
|
198
203
|
```ruby
|
|
199
204
|
# Enum constants preserve tagged type information:
|
|
@@ -215,17 +220,10 @@ This package follows [SemVer](https://semver.org/spec/v2.0.0.html). Version `0`
|
|
|
215
220
|
|
|
216
221
|
Changes to non-runtime `*.rbi` and `*.rbs` definitions remain non-breaking.
|
|
217
222
|
|
|
218
|
-
##
|
|
219
|
-
|
|
220
|
-
Ruby 3.2.0 or higher.
|
|
221
|
-
|
|
222
|
-
## Security & Support
|
|
223
|
+
## Help & contributing
|
|
223
224
|
|
|
224
225
|
- Report vulnerabilities through the [security policy](SECURITY.md).
|
|
225
226
|
- Ask usage questions through the [organization support policy](https://github.com/Xquik-dev/.github/blob/main/SUPPORT.md).
|
|
226
|
-
|
|
227
|
-
## Contributing
|
|
228
|
-
|
|
229
|
-
Read the [contribution guide](CONTRIBUTING.md).
|
|
227
|
+
- Read the [contribution guide](CONTRIBUTING.md).
|
|
230
228
|
|
|
231
229
|
Xquik is an independent third-party service. Not affiliated with X Corp. "Twitter" and "X" are trademarks of X Corp.
|
data/SECURITY.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Security
|
|
1
|
+
# Security policy
|
|
2
2
|
|
|
3
|
-
## Supported
|
|
3
|
+
## Supported versions
|
|
4
4
|
|
|
5
5
|
Security fixes target the latest published release.
|
|
6
6
|
|
|
7
|
-
## Reporting
|
|
7
|
+
## Reporting a vulnerability
|
|
8
8
|
|
|
9
9
|
Report vulnerabilities privately through
|
|
10
10
|
[support@xquik.com](mailto:support@xquik.com).
|
|
@@ -403,8 +403,8 @@ module XTwitterScraper
|
|
|
403
403
|
# Returns the raw value associated with the given key, if found. Otherwise, nil is
|
|
404
404
|
# returned.
|
|
405
405
|
#
|
|
406
|
-
#
|
|
407
|
-
#
|
|
406
|
+
# You may look up keys absent from the API spec, such as undocumented response fields.
|
|
407
|
+
# This method does not parse response data into
|
|
408
408
|
# higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
|
|
409
409
|
#
|
|
410
410
|
# @param key [Symbol]
|
|
@@ -78,8 +78,7 @@ module XTwitterScraper
|
|
|
78
78
|
|
|
79
79
|
# @api private
|
|
80
80
|
#
|
|
81
|
-
# Unlike
|
|
82
|
-
# of the enum.
|
|
81
|
+
# Unlike primitives, `Enum` validates membership.
|
|
83
82
|
#
|
|
84
83
|
# @param value [String, Symbol, Object]
|
|
85
84
|
#
|
|
@@ -37,16 +37,14 @@ module XTwitterScraper
|
|
|
37
37
|
optional :idempotency_key, String
|
|
38
38
|
|
|
39
39
|
# @!attribute extra_query
|
|
40
|
-
# Extra query params
|
|
41
|
-
# `query` given at the client level.
|
|
40
|
+
# Extra query params merge into any `query` given at the client level.
|
|
42
41
|
#
|
|
43
42
|
# @return [Hash{String=>Array<String>, String, nil}, nil]
|
|
44
43
|
optional :extra_query,
|
|
45
44
|
XTwitterScraper::Internal::Type::HashOf[XTwitterScraper::Internal::Type::ArrayOf[String]]
|
|
46
45
|
|
|
47
46
|
# @!attribute extra_headers
|
|
48
|
-
# Extra headers
|
|
49
|
-
# `extra_headers` given at the client level.
|
|
47
|
+
# Extra headers merge into any `extra_headers` given at the client level.
|
|
50
48
|
#
|
|
51
49
|
# @return [Hash{String=>String, nil}, nil]
|
|
52
50
|
optional :extra_headers, XTwitterScraper::Internal::Type::HashOf[String, nil?: true]
|
|
@@ -10,7 +10,7 @@ module XTwitterScraper
|
|
|
10
10
|
# X account monitoring with 1-second checks
|
|
11
11
|
class Keywords
|
|
12
12
|
# Creates a keyword monitor. Keyword monitors are unlimited. Active monitors check
|
|
13
|
-
# every 1 second and cost
|
|
13
|
+
# every 1 second and cost 30 credits per hour. Events and webhook deliveries are
|
|
14
14
|
# included. Creation requires available credits for the first hourly charge.
|
|
15
15
|
#
|
|
16
16
|
# @overload create(event_types:, query:, request_options: {})
|
|
@@ -13,7 +13,7 @@ module XTwitterScraper
|
|
|
13
13
|
attr_reader :keywords
|
|
14
14
|
|
|
15
15
|
# Creates an account monitor. Monitors are unlimited. Active monitors check every
|
|
16
|
-
# 1 second and cost
|
|
16
|
+
# 1 second and cost 30 credits per hour. Events and webhook deliveries are
|
|
17
17
|
# included. Creation requires available credits for the first hourly charge and
|
|
18
18
|
# username lookup.
|
|
19
19
|
#
|
|
@@ -29,8 +29,7 @@ module XTwitterScraper
|
|
|
29
29
|
sig { returns(T.nilable(String)) }
|
|
30
30
|
attr_accessor :idempotency_key
|
|
31
31
|
|
|
32
|
-
# Extra query params
|
|
33
|
-
# `query` given at the client level.
|
|
32
|
+
# Extra query params merge into any `query` given at the client level.
|
|
34
33
|
sig do
|
|
35
34
|
returns(
|
|
36
35
|
T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))])
|
|
@@ -38,8 +37,7 @@ module XTwitterScraper
|
|
|
38
37
|
end
|
|
39
38
|
attr_accessor :extra_query
|
|
40
39
|
|
|
41
|
-
# Extra headers
|
|
42
|
-
# `extra_headers` given at the client level.
|
|
40
|
+
# Extra headers merge into any `extra_headers` given at the client level.
|
|
43
41
|
sig { returns(T.nilable(T::Hash[String, T.nilable(String)])) }
|
|
44
42
|
attr_accessor :extra_headers
|
|
45
43
|
|
|
@@ -10,7 +10,7 @@ module XTwitterScraper
|
|
|
10
10
|
# X account monitoring with 1-second checks
|
|
11
11
|
class Keywords
|
|
12
12
|
# Creates a keyword monitor. Keyword monitors are unlimited. Active monitors check
|
|
13
|
-
# every 1 second and cost
|
|
13
|
+
# every 1 second and cost 30 credits per hour. Events and webhook deliveries are
|
|
14
14
|
# included. Creation requires available credits for the first hourly charge.
|
|
15
15
|
sig do
|
|
16
16
|
params(
|
|
@@ -13,7 +13,7 @@ module XTwitterScraper
|
|
|
13
13
|
attr_reader :keywords
|
|
14
14
|
|
|
15
15
|
# Creates an account monitor. Monitors are unlimited. Active monitors check every
|
|
16
|
-
# 1 second and cost
|
|
16
|
+
# 1 second and cost 30 credits per hour. Events and webhook deliveries are
|
|
17
17
|
# included. Creation requires available credits for the first hourly charge and
|
|
18
18
|
# username lookup.
|
|
19
19
|
sig do
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: x-twitter-scraper
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.10.
|
|
4
|
+
version: 0.10.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Xquik
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-10-13 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: base64
|
|
@@ -51,6 +51,11 @@ dependencies:
|
|
|
51
51
|
- - ">="
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
53
|
version: '0'
|
|
54
|
+
description: X API & Twitter API SDK for Ruby by Xquik. Scrape Twitter search, timelines,
|
|
55
|
+
profiles & followers as a typed Twitter scraper & tweet scraper. Manage media, webhooks,
|
|
56
|
+
monitors & X automation through documented Xquik REST routes. Xquik is the world's
|
|
57
|
+
fastest and cheapest X Twitter scraper service with the most complete X data. Not
|
|
58
|
+
affiliated with X Corp.
|
|
54
59
|
email: support@xquik.com
|
|
55
60
|
executables: []
|
|
56
61
|
extensions: []
|
|
@@ -955,6 +960,9 @@ licenses:
|
|
|
955
960
|
metadata:
|
|
956
961
|
homepage_uri: https://docs.xquik.com/sdks/ruby
|
|
957
962
|
source_code_uri: https://github.com/Xquik-dev/x-twitter-scraper-ruby
|
|
963
|
+
documentation_uri: https://docs.xquik.com/api-reference/overview
|
|
964
|
+
changelog_uri: https://github.com/Xquik-dev/x-twitter-scraper-ruby/blob/main/CHANGELOG.md
|
|
965
|
+
bug_tracker_uri: https://github.com/Xquik-dev/x-twitter-scraper-ruby/issues
|
|
958
966
|
rubygems_mfa_required: 'false'
|
|
959
967
|
rdoc_options: []
|
|
960
968
|
require_paths:
|
|
@@ -970,8 +978,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
970
978
|
- !ruby/object:Gem::Version
|
|
971
979
|
version: '0'
|
|
972
980
|
requirements: []
|
|
973
|
-
rubygems_version: 4.0.
|
|
981
|
+
rubygems_version: 4.0.11
|
|
974
982
|
specification_version: 4
|
|
975
|
-
summary:
|
|
976
|
-
with X Corp.
|
|
983
|
+
summary: X API & Twitter API SDK for Ruby. Scrape Twitter search, profiles & followers
|
|
984
|
+
as a Twitter scraper & tweet scraper. Not affiliated with X Corp.
|
|
977
985
|
test_files: []
|