trycourier 6.11.1 → 6.11.3

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: 8355e7fd1f1c9e1ed9f2aafab8f6dbce8c8081f7e9b62ff4f43f7a218d8eb9d5
4
- data.tar.gz: d678747f0d3d4b4107f5be81fb7dc138f7711a88eed4f37591b8e938743cf2a4
3
+ metadata.gz: bc663969984ae8b94e9f2f522dc24ea9e1cbf1eed91ba357b565038bedb939ab
4
+ data.tar.gz: 5cfd3e3767063edef226cf90ec1e6833e6122660be98b0d499b3e8007cea090f
5
5
  SHA512:
6
- metadata.gz: c190958991c41ffe7905492408eac10b80f5e237eec79efa599489176942a068be1b4de41d28ab04cdd32637d4fc5513a3bd1c9f86f1f7118295706b93c1fd89
7
- data.tar.gz: 3f561d73086f92e6452f3d8eb632aa60f2c1158952e2aab5008440864c5cf7f82a2f188fa4218c9ae4bc071aa6663b732e42fc90d5e549b6b27944b076237a93
6
+ metadata.gz: 3482fdf2ca8fa7c825ff9259dabd2daa76c085cd65c79ee6f5bba64c19308aabfa933f9601f871b9167fa41017c76a2687c34710589544d34f1403d5469e2a74
7
+ data.tar.gz: e9a750836a3948eb31382b228503d9ad8360cf6309f8943efd550baab5c6607bb9ebce02a0dcb60b9a3d61e1481d024050e5158ac1c799ea555513b96c3815e0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [6.11.3](https://github.com/trycourier/courier-ruby/compare/v6.11.2...v6.11.3) (2026-09-30)
4
+
5
+
6
+ ### Documentation
7
+
8
+ * **api:** remove the plan gate from the bulk preferences replace errors [C-21256] ([#171](https://github.com/trycourier/courier-ruby/issues/171)) ([f2b3213](https://github.com/trycourier/courier-ruby/commit/f2b3213389e70c2acd6eaa1e0930595740fa9860))
9
+
10
+ ## [6.11.2](https://github.com/trycourier/courier-ruby/compare/v6.11.1...v6.11.2) (2026-09-24)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * load on Ruby 3.4 and 4.0 without the base64 and cgi gems ([d26ca86](https://github.com/trycourier/courier-ruby/commit/d26ca86a4dec3493f50c633fe6656e708e87d73f))
16
+
3
17
  ## [6.11.1](https://github.com/trycourier/courier-ruby/compare/v6.11.0...v6.11.1) (2026-09-24)
4
18
 
5
19
 
data/README.md CHANGED
@@ -9,7 +9,7 @@ Add the gem to your `Gemfile`:
9
9
  <!-- x-release-please-start-version -->
10
10
 
11
11
  ```ruby
12
- gem "trycourier", "~> 6.11.1"
12
+ gem "trycourier", "~> 6.11.3"
13
13
  ```
14
14
 
15
15
  <!-- x-release-please-end -->
@@ -286,7 +286,24 @@ module Courier
286
286
  #
287
287
  # @return [Hash{String=>Array<String>}]
288
288
  def decode_query(query)
289
- CGI.parse(query.to_s)
289
+ params = {}
290
+ query.to_s.split(/[&;]/).each do |pair|
291
+ key, value = pair.split("=", 2).map do |component|
292
+ # URI rejects malformed escapes, while CGI leaves them literal and stops at a trailing "%+".
293
+ escaped = component.gsub(/%(?![0-9a-fA-F]{2})/, "%25")
294
+ escaped = "#{escaped.delete_suffix('+')}%2B" if component.end_with?("%+")
295
+ decoded = URI.decode_www_form_component(escaped).force_encoding(Encoding::UTF_8)
296
+ decoded.valid_encoding? ? decoded : decoded.force_encoding(component.encoding)
297
+ end
298
+
299
+ next unless key
300
+
301
+ params[key] ||= []
302
+ params[key] << value if value
303
+ end
304
+
305
+ params.default = [].freeze
306
+ params
290
307
  end
291
308
 
292
309
  # @api private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Courier
4
- VERSION = "6.11.1"
4
+ VERSION = "6.11.3"
5
5
  end
data/lib/courier.rb CHANGED
@@ -3,8 +3,6 @@
3
3
  # Standard libraries.
4
4
  # rubocop:disable Lint/RedundantRequireStatement
5
5
  require "English"
6
- require "base64"
7
- require "cgi"
8
6
  require "date"
9
7
  require "erb"
10
8
  require "etc"
data/manifest.yaml CHANGED
@@ -1,7 +1,5 @@
1
1
  dependencies:
2
2
  - English
3
- - base64
4
- - cgi
5
3
  - date
6
4
  - erb
7
5
  - etc
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trycourier
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.11.1
4
+ version: 6.11.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Courier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-24 00:00:00.000000000 Z
11
+ date: 2026-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: cgi
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: connection_pool
29
15
  requirement: !ruby/object:Gem::Requirement