og_pilot_ruby 0.4.4 → 0.4.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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ee4898069ea1b40ff62e9db35ca4d5c726aaa27cf7b658c233c9f5f9bcc70bb2
|
|
4
|
+
data.tar.gz: 4c38cee9d0e4753208e3b65c37c4b33a6b478fa1b34c9fd16cd98aca56836c56
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2c1772c79ca7847a027611e42869888017b53e2e829a1262c519fb708d7e30e9fd4bce3bb0eb1ccc997c022a250b314ceadc88d3db5bcdb6c415c6aa23d5a177
|
|
7
|
+
data.tar.gz: dced72f71149af6c1544bd11ff0803e10159d81e1f0039a58df025009e8527f7b4a1f4eca2bfe934d86e8d37f47a353bf9c6dfb1e32b4ba387d1ed8f4b01a66a
|
data/README.md
CHANGED
|
@@ -566,6 +566,7 @@ The gem handles `iss` (domain) and `sub` (API key prefix) automatically.
|
|
|
566
566
|
| `open_timeout` | `5` | Connection timeout in seconds |
|
|
567
567
|
| `read_timeout` | `10` | Read timeout in seconds |
|
|
568
568
|
| `strip_extensions` | `true` | When `true`, file extensions are stripped from resolved paths (see [Strip extensions](#strip-extensions)) |
|
|
569
|
+
| `strip_query_parameters` | `false` | When `true`, query strings are removed from resolved paths before signing (see [Strip query parameters](#strip-query-parameters)) |
|
|
569
570
|
| `cache_store` | `nil` | Optional cache backend with `read`/`write` (for example `Rails.cache`) |
|
|
570
571
|
| `cache_ttl` | `86400` | Cache TTL in seconds when `cache_store` is enabled |
|
|
571
572
|
|
|
@@ -679,6 +680,25 @@ OgPilotRuby.create_image(title: "Docs", path: "/docs.php")
|
|
|
679
680
|
# Dotfiles are unchanged: /.hidden stays /.hidden
|
|
680
681
|
```
|
|
681
682
|
|
|
683
|
+
### Strip query parameters
|
|
684
|
+
|
|
685
|
+
When `strip_query_parameters` is enabled, the client drops the query string from
|
|
686
|
+
every resolved path before it signs the payload. This keeps analytics grouped
|
|
687
|
+
under the canonical path even when links include tracking or pagination
|
|
688
|
+
parameters. It works alongside `strip_extensions`, so
|
|
689
|
+
`/archive.tar.gz?ref=campaign` resolves to `"/archive"` when both are enabled.
|
|
690
|
+
|
|
691
|
+
```ruby
|
|
692
|
+
OgPilotRuby.configure do |config|
|
|
693
|
+
config.strip_query_parameters = true
|
|
694
|
+
end
|
|
695
|
+
|
|
696
|
+
# These resolve to "/docs":
|
|
697
|
+
OgPilotRuby.create_image(title: "Docs", path: "/docs")
|
|
698
|
+
OgPilotRuby.create_image(title: "Docs", path: "/docs?ref=main")
|
|
699
|
+
OgPilotRuby.create_image(title: "Docs", path: "https://example.com/docs?ref=campaign")
|
|
700
|
+
```
|
|
701
|
+
|
|
682
702
|
## Development
|
|
683
703
|
|
|
684
704
|
Run tests with:
|
data/lib/og_pilot_ruby/client.rb
CHANGED
|
@@ -253,6 +253,7 @@ module OgPilotRuby
|
|
|
253
253
|
cleaned = extract_request_uri(cleaned)
|
|
254
254
|
cleaned = "/#{cleaned}" unless cleaned.start_with?("/")
|
|
255
255
|
cleaned = strip_extension(cleaned) if config.strip_extensions
|
|
256
|
+
cleaned = remove_query_parameters(cleaned) if config.strip_query_parameters
|
|
256
257
|
cleaned
|
|
257
258
|
end
|
|
258
259
|
|
|
@@ -278,6 +279,11 @@ module OgPilotRuby
|
|
|
278
279
|
query ? "#{stripped}?#{query}" : stripped
|
|
279
280
|
end
|
|
280
281
|
|
|
282
|
+
def remove_query_parameters(path)
|
|
283
|
+
stripped = path.split("?", 2).first
|
|
284
|
+
stripped.empty? ? "/" : stripped
|
|
285
|
+
end
|
|
286
|
+
|
|
281
287
|
def extract_request_uri(value)
|
|
282
288
|
return value unless value.start_with?("http://", "https://")
|
|
283
289
|
|
|
@@ -5,7 +5,7 @@ module OgPilotRuby
|
|
|
5
5
|
DEFAULT_BASE_URL = "https://ogpilot.com"
|
|
6
6
|
private_constant :DEFAULT_BASE_URL
|
|
7
7
|
|
|
8
|
-
attr_accessor :api_key, :domain, :base_url, :open_timeout, :read_timeout, :strip_extensions, :cache_store, :cache_ttl
|
|
8
|
+
attr_accessor :api_key, :domain, :base_url, :open_timeout, :read_timeout, :strip_extensions, :strip_query_parameters, :cache_store, :cache_ttl
|
|
9
9
|
|
|
10
10
|
def initialize
|
|
11
11
|
@api_key = ENV.fetch("OG_PILOT_API_KEY", nil)
|
|
@@ -14,6 +14,7 @@ module OgPilotRuby
|
|
|
14
14
|
@open_timeout = 5
|
|
15
15
|
@read_timeout = 10
|
|
16
16
|
@strip_extensions = true
|
|
17
|
+
@strip_query_parameters = false
|
|
17
18
|
@cache_store = nil
|
|
18
19
|
@cache_ttl = 86400
|
|
19
20
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: og_pilot_ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sunergos IT LLC
|
|
@@ -97,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
97
97
|
- !ruby/object:Gem::Version
|
|
98
98
|
version: '0'
|
|
99
99
|
requirements: []
|
|
100
|
-
rubygems_version: 4.0.
|
|
100
|
+
rubygems_version: 4.0.6
|
|
101
101
|
specification_version: 4
|
|
102
102
|
summary: Ruby client for the OG Pilot Open Graph image generator.
|
|
103
103
|
test_files: []
|