Skip to content

Commit 6d92989

Browse files
author
Burak Bayır
authored
release: 0.10.4 (#53)
1 parent 23b242e commit 6d92989

11 files changed

Lines changed: 47 additions & 57 deletions

File tree

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.10.3"
2+
".": "0.10.4"
33
}

CHANGELOG.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 0.10.4 (2026-08-21)
4+
5+
Full Changelog: [v0.10.3...v0.10.4](https://github.com/Xquik-dev/x-twitter-scraper-ruby/compare/v0.10.3...v0.10.4)
6+
7+
### Documentation
8+
9+
* Remove repeated SDK copy and repair public links.
10+
311
## 0.10.3 (2026-08-21)
412

513
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 +281,6 @@ Full Changelog: [v0.1.0...v0.2.0](https://github.com/Xquik-dev/x-twitter-scraper
273281

274282
## 0.1.0 (2026-03-30)
275283

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-
278284
### Features
279285

280286
* **api:** api update ([772ffdd](https://github.com/Xquik-dev/x-twitter-scraper-ruby/commit/772ffdd682ee96f94334441b9fc5b1e109559993))

CONTRIBUTING.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Contributing
22

3-
## Set Up
3+
## Set up
44

55
The `.ruby-version` file works with rbenv and asdf's Ruby plugin.
66
Install that Ruby version, then run:
@@ -11,13 +11,13 @@ Install that Ruby version, then run:
1111

1212
Run `bundle exec rake` to list every task.
1313

14-
## Generated Code
14+
## Generated code
1515

1616
Most SDK files come from the API generator.
1717
Direct edits survive regeneration but can create conflicts.
1818
The generator never changes `lib/x_twitter_scraper/helpers/` or `examples/`.
1919

20-
## Add Examples
20+
## Add examples
2121

2222
Files under `examples/` remain handwritten.
2323

@@ -35,7 +35,7 @@ chmod +x examples/<name>.rb
3535
ruby examples/<name>.rb
3636
```
3737

38-
## Use a Source Checkout
38+
## Use a source checkout
3939

4040
Reference GitHub in your `Gemfile`:
4141

@@ -49,7 +49,7 @@ Reference a local clone instead:
4949
gem "x-twitter-scraper", path: "<path-to-repo>"
5050
```
5151

52-
## Run Checks
52+
## Run checks
5353

5454
```bash
5555
bundle exec rake test
@@ -60,10 +60,9 @@ bundle exec rake docs:preview PORT=8808
6060

6161
`format` rewrites files. `docs:preview` starts a local server.
6262

63-
## Editor Support
63+
## Editor support
6464

65-
Ruby LSP supports definition lookup. Solargraph supports completion.
66-
Install both to use both features.
65+
Install Ruby LSP for definition lookup and Solargraph for completion.
6766

6867
Sorbet works here with 2 known caveats:
6968

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ GIT
1111
PATH
1212
remote: .
1313
specs:
14-
x-twitter-scraper (0.10.3)
14+
x-twitter-scraper (0.10.4)
1515
base64
1616
cgi
1717
connection_pool

README.md

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Xquik Ruby SDK: Twitter Search, Followers & X Automation
1+
# Xquik Ruby SDK: Twitter search, followers & X automation
22

33
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/13739/badge)](https://www.bestpractices.dev/projects/13739)
44

@@ -8,7 +8,7 @@ Use documented Xquik REST routes as a Twitter API alternative.
88

99
[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)
1010

11-
## Common Twitter & X Tasks
11+
## Common Twitter & X tasks
1212

1313
| Task | REST Route | Usage |
1414
| --- | --- | --- |
@@ -24,12 +24,14 @@ Use documented Xquik REST routes as a Twitter API alternative.
2424

2525
## Installation
2626

27+
Requires Ruby 3.2.0 or higher.
28+
2729
Add the gem to your `Gemfile`:
2830

2931
<!-- x-release-please-start-version -->
3032

3133
```ruby
32-
gem "x-twitter-scraper", "~> 0.10.3"
34+
gem "x-twitter-scraper", "~> 0.10.4"
3335
```
3436

3537
<!-- x-release-please-end -->
@@ -41,15 +43,15 @@ require "bundler/setup"
4143
require "x_twitter_scraper"
4244

4345
x_twitter_scraper = XTwitterScraper::Client.new(
44-
api_key: ENV["X_TWITTER_SCRAPER_API_KEY"] # This is the default and can be omitted
46+
api_key: ENV["X_TWITTER_SCRAPER_API_KEY"] # Optional; the client reads this variable.
4547
)
4648

4749
response = x_twitter_scraper.x.tweets.search(q: "from:elonmusk", limit: 10)
4850

4951
puts(response)
5052
```
5153

52-
### Handling Errors
54+
### Handling errors
5355

5456
The SDK raises an `APIError` subclass for connection failures and non-2xx responses:
5557

@@ -67,8 +69,6 @@ rescue XTwitterScraper::Errors::APIStatusError => e
6769
end
6870
```
6971

70-
The SDK uses these error classes:
71-
7272
| Cause | Error Type |
7373
| ---------------- | -------------------------- |
7474
| HTTP 400 | `BadRequestError` |
@@ -90,12 +90,12 @@ It uses exponential backoff with 2 retries by default.
9090
Set `max_retries` to change or disable retries:
9191

9292
```ruby
93-
# Set the client default:
93+
# Change the client default.
9494
x_twitter_scraper = XTwitterScraper::Client.new(
95-
max_retries: 0 # default is 2
95+
max_retries: 0
9696
)
9797

98-
# Override one request:
98+
# Override one request.
9999
x_twitter_scraper.account.retrieve(request_options: {max_retries: 5})
100100
```
101101

@@ -104,31 +104,28 @@ x_twitter_scraper.account.retrieve(request_options: {max_retries: 5})
104104
Requests time out after 60 seconds. Set `timeout` to change or disable this limit:
105105

106106
```ruby
107-
# Set the client default:
107+
# Change the client default.
108108
x_twitter_scraper = XTwitterScraper::Client.new(
109-
timeout: nil # default is 60
109+
timeout: nil
110110
)
111111

112-
# Override one request:
112+
# Override one request.
113113
x_twitter_scraper.account.retrieve(request_options: {timeout: 5})
114114
```
115115

116116
Timeouts raise `XTwitterScraper::Errors::APITimeoutError` and follow the retry policy.
117117

118-
## Advanced Concepts
118+
## BaseModel
119119

120-
### BaseModel
121-
122-
All parameter and response objects inherit from `XTwitterScraper::Internal::Type::BaseModel`.
123-
The base model provides these operations:
120+
All parameter and response objects inherit from `XTwitterScraper::Internal::Type::BaseModel` and support:
124121

125122
1. Access known and unknown fields with `obj[:prop]`.
126123
2. Destructure fields with `obj => {prop: prop}` or pattern matching.
127124
3. Compare objects by their field values with `==`.
128125
4. Print classes and instances in a readable format.
129126
5. Convert values with `#to_h`, `#deep_to_h`, `#to_json`, or `#to_yaml`.
130127

131-
### Custom Requests
128+
## Custom requests
132129

133130
Use `extra_query`, `extra_body`, or `extra_headers` under `request_options`.
134131
Matching `extra_` values override documented parameters.
@@ -158,7 +155,7 @@ response = client.request(
158155
)
159156
```
160157

161-
### Concurrency & Connection Pooling
158+
## Concurrency & connection pooling
162159

163160
Clients are thread-safe. Fork them only when no HTTP requests are in flight.
164161
Each client has an HTTP connection pool with a default size of 99.
@@ -215,17 +212,10 @@ This package follows [SemVer](https://semver.org/spec/v2.0.0.html). Version `0`
215212

216213
Changes to non-runtime `*.rbi` and `*.rbs` definitions remain non-breaking.
217214

218-
## Requirements
219-
220-
Ruby 3.2.0 or higher.
221-
222-
## Security & Support
215+
## Help & contributing
223216

224217
- Report vulnerabilities through the [security policy](SECURITY.md).
225218
- 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).
219+
- Read the [contribution guide](CONTRIBUTING.md).
230220

231221
Xquik is an independent third-party service. Not affiliated with X Corp. "Twitter" and "X" are trademarks of X Corp.

SECURITY.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# Security Policy
1+
# Security policy
22

3-
## Supported Versions
3+
## Supported versions
44

55
Security fixes target the latest published release.
66

7-
## Reporting A Vulnerability
7+
## Reporting a vulnerability
88

99
Report vulnerabilities privately through
1010
[support@xquik.com](mailto:support@xquik.com).

lib/x_twitter_scraper/internal/type/base_model.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,8 +403,8 @@ def recursively_to_h(model, convert:)
403403
# Returns the raw value associated with the given key, if found. Otherwise, nil is
404404
# returned.
405405
#
406-
# It is valid to lookup keys that are not in the API spec, for example to access
407-
# undocumented features. This method does not parse response data into
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
408408
# higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
409409
#
410410
# @param key [Symbol]

lib/x_twitter_scraper/internal/type/enum.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@ def hash = values.to_set.hash
7878

7979
# @api private
8080
#
81-
# Unlike with primitives, `Enum` additionally validates that the value is a member
82-
# of the enum.
81+
# Unlike primitives, `Enum` validates membership.
8382
#
8483
# @param value [String, Symbol, Object]
8584
#

lib/x_twitter_scraper/request_options.rb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,14 @@ def self.validate!(opts)
3737
optional :idempotency_key, String
3838

3939
# @!attribute extra_query
40-
# Extra query params to send with the request. These are `.merge`’d into any
41-
# `query` given at the client level.
40+
# Extra query params merge into any `query` given at the client level.
4241
#
4342
# @return [Hash{String=>Array<String>, String, nil}, nil]
4443
optional :extra_query,
4544
XTwitterScraper::Internal::Type::HashOf[XTwitterScraper::Internal::Type::ArrayOf[String]]
4645

4746
# @!attribute extra_headers
48-
# Extra headers to send with the request. These are `.merged`’d into any
49-
# `extra_headers` given at the client level.
47+
# Extra headers merge into any `extra_headers` given at the client level.
5048
#
5149
# @return [Hash{String=>String, nil}, nil]
5250
optional :extra_headers, XTwitterScraper::Internal::Type::HashOf[String, nil?: true]

lib/x_twitter_scraper/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
# frozen_string_literal: true
66

77
module XTwitterScraper
8-
VERSION = "0.10.3"
8+
VERSION = "0.10.4"
99
end

0 commit comments

Comments
 (0)