addressable 2.8.5 → 2.8.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b7d4ea3b683b3b7c719ae54919505e8e98823b39e54cd68d3579319b61d9824
4
- data.tar.gz: d09b61eba34544826aec64909b848b53549ae64059e09cc5f462991a59fd2465
3
+ metadata.gz: 4023555b4bb6c374726bb9647a29d30943c637115619670a09632fe7a4e28765
4
+ data.tar.gz: 95ad31a9e1dd01f2bc9a7c097eb452f07ed52be16dcd2ad4946652648dd7808c
5
5
  SHA512:
6
- metadata.gz: 37927e878581e256a98ac619723a90f7b7a2d5b655ef613872a4f963ffdccabc6f0b761b65673fc6929509b0f783b48460b2643ac33c2d076bc5234e4126573b
7
- data.tar.gz: 3afd1d272e41f97959bc8b34188b8d9fc419fcc01af9ea8a955d3ee2e6f57e3417d5ec6c58378e6b29fedb15e948ace7c080cd2c3739d6e24a4dd04eb3fa3f70
6
+ metadata.gz: d7dd6eed173bc4a06a3abb74f6fdbf501ee12b3fcb2828c0f21db98d1779175bce4dc900999269db24cc8647c3148b06cf1d9c768c97c7591a48f1e43751bb7b
7
+ data.tar.gz: 3bbe976f23a4c3a6776a44d6ff2147b9ab87418162af57b2f278089528416eb3d564b114f96f165946d9126ee68d5da86c0ac01a9e2fa2792547bb312f40f046
data/CHANGELOG.md CHANGED
@@ -1,4 +1,9 @@
1
- # Addressable 2.8.5
1
+ # Addressable 2.8.6 <a name="v2.8.6">
2
+ - Memoize regexps for common character classes ([#524])
3
+
4
+ [#524]: https://github.com/sporkmonger/addressable/pull/524
5
+
6
+ # Addressable 2.8.5 <a name="v2.8.5">
2
7
  - Fix thread safety issue with encoding tables ([#515])
3
8
  - Define URI::NONE as a module to avoid serialization issues ([#509])
4
9
  - Fix YAML serialization ([#508])
@@ -7,18 +12,18 @@
7
12
  [#509]: https://github.com/sporkmonger/addressable/pull/509
8
13
  [#515]: https://github.com/sporkmonger/addressable/pull/515
9
14
 
10
- # Addressable 2.8.4
15
+ # Addressable 2.8.4 <a name="v2.8.4">
11
16
  - Restore `Addressable::IDNA.unicode_normalize_kc` as a deprecated method ([#504])
12
17
 
13
18
  [#504]: https://github.com/sporkmonger/addressable/pull/504
14
19
 
15
- # Addressable 2.8.3
20
+ # Addressable 2.8.3 <a name="v2.8.3">
16
21
  - Fix template expand level 2 hash support for non-string objects ([#499], [#498])
17
22
 
18
23
  [#499]: https://github.com/sporkmonger/addressable/pull/499
19
24
  [#498]: https://github.com/sporkmonger/addressable/pull/498
20
25
 
21
- # Addressable 2.8.2
26
+ # Addressable 2.8.2 <a name="v2.8.2">
22
27
  - Improve cache hits and JIT friendliness ([#486](https://github.com/sporkmonger/addressable/pull/486))
23
28
  - Improve code style and test coverage ([#482](https://github.com/sporkmonger/addressable/pull/482))
24
29
  - Ensure reset of deferred validation ([#481](https://github.com/sporkmonger/addressable/pull/481))
@@ -27,7 +32,7 @@
27
32
 
28
33
  [#492]: https://github.com/sporkmonger/addressable/pull/492
29
34
 
30
- # Addressable 2.8.1
35
+ # Addressable 2.8.1 <a name="v2.8.1">
31
36
  - refactor `Addressable::URI.normalize_path` to address linter offenses ([#430](https://github.com/sporkmonger/addressable/pull/430))
32
37
  - update gemspec to reflect supported Ruby versions ([#466], [#464], [#463])
33
38
  - compatibility w/ public_suffix 5.x ([#466], [#465], [#460])
@@ -43,7 +48,7 @@
43
48
  [#465]: https://github.com/sporkmonger/addressable/pull/465
44
49
  [#466]: https://github.com/sporkmonger/addressable/pull/466
45
50
 
46
- # Addressable 2.8.0
51
+ # Addressable 2.8.0 <a name="v2.8.0">
47
52
  - fixes ReDoS vulnerability in Addressable::Template#match
48
53
  - no longer replaces `+` with spaces in queries for non-http(s) schemes
49
54
  - fixed encoding ipv6 literals
@@ -55,14 +60,14 @@
55
60
  - performance improvements
56
61
  - switch CI/CD to GitHub Actions
57
62
 
58
- # Addressable 2.7.0
63
+ # Addressable 2.7.0 <a name="v2.7.0">
59
64
  - added `:compacted` flag to `normalized_query`
60
65
  - `heuristic_parse` handles `mailto:` more intuitively
61
66
  - dropped explicit support for JRuby 9.0.5.0
62
67
  - compatibility w/ public_suffix 4.x
63
68
  - performance improvements
64
69
 
65
- # Addressable 2.6.0
70
+ # Addressable 2.6.0 <a name="v2.6.0">
66
71
  - added `tld=` method to allow assignment to the public suffix
67
72
  - most `heuristic_parse` patterns are now case-insensitive
68
73
  - `heuristic_parse` handles more `file://` URI variations
@@ -73,17 +78,17 @@
73
78
  - minor performance improvements in regexps
74
79
  - fixes to eliminate warnings
75
80
 
76
- # Addressable 2.5.2
81
+ # Addressable 2.5.2 <a name="v2.5.2">
77
82
  - better support for frozen string literals
78
83
  - fixed bug w/ uppercase characters in scheme
79
84
  - IDNA errors w/ emoji URLs
80
85
  - compatibility w/ public_suffix 3.x
81
86
 
82
- # Addressable 2.5.1
87
+ # Addressable 2.5.1 <a name="v2.5.1">
83
88
  - allow unicode normalization to be disabled for URI Template expansion
84
89
  - removed duplicate test
85
90
 
86
- # Addressable 2.5.0
91
+ # Addressable 2.5.0 <a name="v2.5.0">
87
92
  - dropping support for Ruby 1.9
88
93
  - adding support for Ruby 2.4 preview
89
94
  - add support for public suffixes and tld; first runtime dependency
@@ -97,7 +102,7 @@
97
102
  - host parts longer than 63 bytes will be ignored and not passed to libidn
98
103
  - normalized values always encoded as UTF-8
99
104
 
100
- # Addressable 2.4.0
105
+ # Addressable 2.4.0 <a name="v2.4.0">
101
106
  - support for 1.8.x dropped
102
107
  - double quotes in a host now raises an error
103
108
  - newlines in host will no longer get unescaped during normalization
@@ -109,17 +114,17 @@
109
114
  - fixed minor bug where an exception would be thrown for a missing ACE suffix
110
115
  - better partial expansion of URI templates
111
116
 
112
- # Addressable 2.3.8
117
+ # Addressable 2.3.8 <a name="v2.3.8">
113
118
  - fix warnings
114
119
  - update dependency gems
115
120
  - support for 1.8.x officially deprecated
116
121
 
117
- # Addressable 2.3.7
122
+ # Addressable 2.3.7 <a name="v2.3.7">
118
123
  - fix scenario in which invalid URIs don't get an exception until inspected
119
124
  - handle hostnames with two adjacent periods correctly
120
125
  - upgrade of RSpec
121
126
 
122
- # Addressable 2.3.6
127
+ # Addressable 2.3.6 <a name="v2.3.6">
123
128
  - normalization drops empty query string
124
129
  - better handling in template extract for missing values
125
130
  - template modifier for `'?'` now treated as optional
@@ -128,19 +133,19 @@
128
133
  - added `:sorted` option to normalization of query strings
129
134
  - fixed issue with normalization of hosts given in `'example.com.'` form
130
135
 
131
- # Addressable 2.3.5
136
+ # Addressable 2.3.5 <a name="v2.3.5">
132
137
  - added Addressable::URI#empty? method
133
138
  - Addressable::URI#hostname methods now strip square brackets from IPv6 hosts
134
139
  - compatibility with Net::HTTP in Ruby 2.0.0
135
140
  - Addressable::URI#route_from should always give relative URIs
136
141
 
137
- # Addressable 2.3.4
142
+ # Addressable 2.3.4 <a name="v2.3.4">
138
143
  - fixed issue with encoding altering its inputs
139
144
  - query string normalization now leaves ';' characters alone
140
145
  - FakeFS is detected before attempting to load unicode tables
141
146
  - additional testing to ensure frozen objects don't cause problems
142
147
 
143
- # Addressable 2.3.3
148
+ # Addressable 2.3.3 <a name="v2.3.3">
144
149
  - fixed issue with converting common primitives during template expansion
145
150
  - fixed port encoding issue
146
151
  - removed a few warnings
@@ -149,59 +154,59 @@
149
154
  - no template match should now result in nil instead of an empty MatchData
150
155
  - added license information to gemspec
151
156
 
152
- # Addressable 2.3.2
157
+ # Addressable 2.3.2 <a name="v2.3.2">
153
158
  - added Addressable::URI#default_port method
154
159
  - fixed issue with Marshalling Unicode data on Windows
155
160
  - improved heuristic parsing to better handle IPv4 addresses
156
161
 
157
- # Addressable 2.3.1
162
+ # Addressable 2.3.1 <a name="v2.3.1">
158
163
  - fixed missing unicode data file
159
164
 
160
- # Addressable 2.3.0
165
+ # Addressable 2.3.0 <a name="v2.3.0">
161
166
  - updated Addressable::Template to use RFC 6570, level 4
162
167
  - fixed compatibility problems with some versions of Ruby
163
168
  - moved unicode tables into a data file for performance reasons
164
169
  - removing support for multiple query value notations
165
170
 
166
- # Addressable 2.2.8
171
+ # Addressable 2.2.8 <a name="v2.2.8">
167
172
  - fixed issues with dot segment removal code
168
173
  - form encoding can now handle multiple values per key
169
174
  - updated development environment
170
175
 
171
- # Addressable 2.2.7
176
+ # Addressable 2.2.7 <a name="v2.2.7">
172
177
  - fixed issues related to Addressable::URI#query_values=
173
178
  - the Addressable::URI.parse method is now polymorphic
174
179
 
175
- # Addressable 2.2.6
180
+ # Addressable 2.2.6 <a name="v2.2.6">
176
181
  - changed the way ambiguous paths are handled
177
182
  - fixed bug with frozen URIs
178
183
  - https supported in heuristic parsing
179
184
 
180
- # Addressable 2.2.5
185
+ # Addressable 2.2.5 <a name="v2.2.5">
181
186
  - 'parsing' a pre-parsed URI object is now a dup operation
182
187
  - introduced conditional support for libidn
183
188
  - fixed normalization issue on ampersands in query strings
184
189
  - added additional tests around handling of query strings
185
190
 
186
- # Addressable 2.2.4
191
+ # Addressable 2.2.4 <a name="v2.2.4">
187
192
  - added origin support from draft-ietf-websec-origin-00
188
193
  - resolved issue with attempting to navigate below root
189
194
  - fixed bug with string splitting in query strings
190
195
 
191
- # Addressable 2.2.3
196
+ # Addressable 2.2.3 <a name="v2.2.3">
192
197
  - added :flat_array notation for query strings
193
198
 
194
- # Addressable 2.2.2
199
+ # Addressable 2.2.2 <a name="v2.2.2">
195
200
  - fixed issue with percent escaping of '+' character in query strings
196
201
 
197
- # Addressable 2.2.1
202
+ # Addressable 2.2.1 <a name="v2.2.1">
198
203
  - added support for application/x-www-form-urlencoded.
199
204
 
200
- # Addressable 2.2.0
205
+ # Addressable 2.2.0 <a name="v2.2.0">
201
206
  - added site methods
202
207
  - improved documentation
203
208
 
204
- # Addressable 2.1.2
209
+ # Addressable 2.1.2 <a name="v2.1.2">
205
210
  - added HTTP request URI methods
206
211
  - better handling of Windows file paths
207
212
  - validation_deferred boolean replaced with defer_validation block
@@ -209,14 +214,14 @@
209
214
  - fixed issue with constructing URIs with relative paths
210
215
  - fixed warnings
211
216
 
212
- # Addressable 2.1.1
217
+ # Addressable 2.1.1 <a name="v2.1.1">
213
218
  - more type checking changes
214
219
  - fixed issue with unicode normalization
215
220
  - added method to find template defaults
216
221
  - symbolic keys are now allowed in template mappings
217
222
  - numeric values and symbolic values are now allowed in template mappings
218
223
 
219
- # Addressable 2.1.0
224
+ # Addressable 2.1.0 <a name="v2.1.0">
220
225
  - refactored URI template support out into its own class
221
226
  - removed extract method due to being useless and unreliable
222
227
  - removed Addressable::URI.expand_template
@@ -230,15 +235,15 @@
230
235
  - worked around issue with freezing URIs
231
236
  - improved specs
232
237
 
233
- # Addressable 2.0.2
238
+ # Addressable 2.0.2 <a name="v2.0.2">
234
239
  - fixed issue with URI template expansion
235
240
  - fixed issue with percent escaping characters 0-15
236
241
 
237
- # Addressable 2.0.1
242
+ # Addressable 2.0.1 <a name="v2.0.1">
238
243
  - fixed issue with query string assignment
239
244
  - fixed issue with improperly encoded components
240
245
 
241
- # Addressable 2.0.0
246
+ # Addressable 2.0.0 <a name="v2.0.0">
242
247
  - the initialize method now takes an options hash as its only parameter
243
248
  - added query_values method to URI class
244
249
  - completely replaced IDNA implementation with pure Ruby
@@ -253,20 +258,20 @@
253
258
  - updated URI Template code to match v 03 of the draft spec
254
259
  - added a bunch of new specifications
255
260
 
256
- # Addressable 1.0.4
261
+ # Addressable 1.0.4 <a name="v1.0.4">
257
262
  - switched to using RSpec's pending system for specs that rely on IDN
258
263
  - fixed issue with creating URIs with paths that are not prefixed with '/'
259
264
 
260
- # Addressable 1.0.3
265
+ # Addressable 1.0.3 <a name="v1.0.3">
261
266
  - implemented a hash method
262
267
 
263
- # Addressable 1.0.2
268
+ # Addressable 1.0.2 <a name="v1.0.2">
264
269
  - fixed minor bug with the extract_mapping method
265
270
 
266
- # Addressable 1.0.1
271
+ # Addressable 1.0.1 <a name="v1.0.1">
267
272
  - fixed minor bug with the extract_mapping method
268
273
 
269
- # Addressable 1.0.0
274
+ # Addressable 1.0.0 <a name="v1.0.0">
270
275
  - heuristic parse method added
271
276
  - parsing is slightly more strict
272
277
  - replaced to_h with to_hash
@@ -275,16 +280,16 @@
275
280
  - improved heckle rake task
276
281
  - no surviving heckle mutations
277
282
 
278
- # Addressable 0.1.2
283
+ # Addressable 0.1.2 <a name="v0.1.2">
279
284
  - improved normalization
280
285
  - fixed bug in joining algorithm
281
286
  - updated specifications
282
287
 
283
- # Addressable 0.1.1
288
+ # Addressable 0.1.1 <a name="v0.1.1">
284
289
  - updated documentation
285
290
  - added URI Template variable extraction
286
291
 
287
- # Addressable 0.1.0
292
+ # Addressable 0.1.0 <a name="v0.1.0">
288
293
  - initial release
289
294
  - implementation based on RFC 3986, 3987
290
295
  - support for IRIs via libidn
data/addressable.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: addressable 2.8.5 ruby lib
2
+ # stub: addressable 2.8.6 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "addressable".freeze
6
- s.version = "2.8.5"
6
+ s.version = "2.8.6".freeze
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
- s.metadata = { "changelog_uri" => "https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md" } if s.respond_to? :metadata=
9
+ s.metadata = { "changelog_uri" => "https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md#v2.8.6" } if s.respond_to? :metadata=
10
10
  s.require_paths = ["lib".freeze]
11
11
  s.authors = ["Bob Aman".freeze]
12
- s.date = "2023-08-03"
12
+ s.date = "2023-12-09"
13
13
  s.description = "Addressable is an alternative implementation to the URI implementation that is\npart of Ruby's standard library. It is flexible, offers heuristic parsing, and\nadditionally provides extensive support for IRIs and URI templates.\n".freeze
14
14
  s.email = "bob@sporkmonger.com".freeze
15
15
  s.extra_rdoc_files = ["README.md".freeze]
@@ -18,11 +18,11 @@ Gem::Specification.new do |s|
18
18
  s.licenses = ["Apache-2.0".freeze]
19
19
  s.rdoc_options = ["--main".freeze, "README.md".freeze]
20
20
  s.required_ruby_version = Gem::Requirement.new(">= 2.2".freeze)
21
- s.rubygems_version = "3.4.18".freeze
21
+ s.rubygems_version = "3.4.22".freeze
22
22
  s.summary = "URI Implementation".freeze
23
23
 
24
24
  s.specification_version = 4
25
25
 
26
- s.add_runtime_dependency(%q<public_suffix>.freeze, [">= 2.0.2", "< 6.0"])
27
- s.add_development_dependency(%q<bundler>.freeze, [">= 1.0", "< 3.0"])
26
+ s.add_runtime_dependency(%q<public_suffix>.freeze, [">= 2.0.2".freeze, "< 6.0".freeze])
27
+ s.add_development_dependency(%q<bundler>.freeze, [">= 1.0".freeze, "< 3.0".freeze])
28
28
  end
@@ -50,6 +50,7 @@ module Addressable
50
50
  SUB_DELIMS = "\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\="
51
51
  RESERVED = (GEN_DELIMS + SUB_DELIMS).freeze
52
52
  UNRESERVED = (ALPHA + DIGIT + "\\-\\.\\_\\~").freeze
53
+ RESERVED_AND_UNRESERVED = RESERVED + UNRESERVED
53
54
  PCHAR = (UNRESERVED + SUB_DELIMS + "\\:\\@").freeze
54
55
  SCHEME = (ALPHA + DIGIT + "\\-\\+\\.").freeze
55
56
  HOST = (UNRESERVED + SUB_DELIMS + "\\[\\:\\]").freeze
@@ -68,6 +69,18 @@ module Addressable
68
69
  QUERY = %r{[^a-zA-Z0-9\-\.\_\~\!\$\'\(\)\*\+\,\=\:\@\/\?%]|%(?!2B|2b)}
69
70
  end
70
71
 
72
+ module CharacterClassesRegexps
73
+ AUTHORITY = /[^#{CharacterClasses::AUTHORITY}]/
74
+ FRAGMENT = /[^#{CharacterClasses::FRAGMENT}]/
75
+ HOST = /[^#{CharacterClasses::HOST}]/
76
+ PATH = /[^#{CharacterClasses::PATH}]/
77
+ QUERY = /[^#{CharacterClasses::QUERY}]/
78
+ RESERVED = /[^#{CharacterClasses::RESERVED}]/
79
+ RESERVED_AND_UNRESERVED = /[^#{CharacterClasses::RESERVED_AND_UNRESERVED}]/
80
+ SCHEME = /[^#{CharacterClasses::SCHEME}]/
81
+ UNRESERVED = /[^#{CharacterClasses::UNRESERVED}]/
82
+ end
83
+
71
84
  SLASH = '/'
72
85
  EMPTY_STR = ''
73
86
 
@@ -387,9 +400,7 @@ module Addressable
387
400
  # "simple/example", Addressable::URI::CharacterClasses::UNRESERVED
388
401
  # )
389
402
  # => "simple%2Fexample"
390
- def self.encode_component(component, character_class=
391
- CharacterClasses::RESERVED + CharacterClasses::UNRESERVED,
392
- upcase_encoded='')
403
+ def self.encode_component(component, character_class=CharacterClassesRegexps::RESERVED_AND_UNRESERVED, upcase_encoded='')
393
404
  return nil if component.nil?
394
405
 
395
406
  begin
@@ -539,7 +550,7 @@ module Addressable
539
550
  # )
540
551
  # => "one two%2Fthree&four"
541
552
  def self.normalize_component(component, character_class=
542
- CharacterClasses::RESERVED + CharacterClasses::UNRESERVED,
553
+ CharacterClassesRegexps::RESERVED_AND_UNRESERVED,
543
554
  leave_encoded='')
544
555
  return nil if component.nil?
545
556
 
@@ -619,15 +630,15 @@ module Addressable
619
630
  uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
620
631
  encoded_uri = Addressable::URI.new(
621
632
  :scheme => self.encode_component(uri_object.scheme,
622
- Addressable::URI::CharacterClasses::SCHEME),
633
+ Addressable::URI::CharacterClassesRegexps::SCHEME),
623
634
  :authority => self.encode_component(uri_object.authority,
624
- Addressable::URI::CharacterClasses::AUTHORITY),
635
+ Addressable::URI::CharacterClassesRegexps::AUTHORITY),
625
636
  :path => self.encode_component(uri_object.path,
626
- Addressable::URI::CharacterClasses::PATH),
637
+ Addressable::URI::CharacterClassesRegexps::PATH),
627
638
  :query => self.encode_component(uri_object.query,
628
- Addressable::URI::CharacterClasses::QUERY),
639
+ Addressable::URI::CharacterClassesRegexps::QUERY),
629
640
  :fragment => self.encode_component(uri_object.fragment,
630
- Addressable::URI::CharacterClasses::FRAGMENT)
641
+ Addressable::URI::CharacterClassesRegexps::FRAGMENT)
631
642
  )
632
643
  if return_type == String
633
644
  return encoded_uri.to_s
@@ -692,19 +703,19 @@ module Addressable
692
703
  end
693
704
  encoded_uri = Addressable::URI.new(
694
705
  :scheme => self.encode_component(components[:scheme],
695
- Addressable::URI::CharacterClasses::SCHEME),
706
+ Addressable::URI::CharacterClassesRegexps::SCHEME),
696
707
  :user => self.encode_component(components[:user],
697
- Addressable::URI::CharacterClasses::UNRESERVED),
708
+ Addressable::URI::CharacterClassesRegexps::UNRESERVED),
698
709
  :password => self.encode_component(components[:password],
699
- Addressable::URI::CharacterClasses::UNRESERVED),
710
+ Addressable::URI::CharacterClassesRegexps::UNRESERVED),
700
711
  :host => components[:host],
701
712
  :port => components[:port],
702
713
  :path => self.encode_component(components[:path],
703
- Addressable::URI::CharacterClasses::PATH),
714
+ Addressable::URI::CharacterClassesRegexps::PATH),
704
715
  :query => self.encode_component(components[:query],
705
- Addressable::URI::CharacterClasses::QUERY),
716
+ Addressable::URI::CharacterClassesRegexps::QUERY),
706
717
  :fragment => self.encode_component(components[:fragment],
707
- Addressable::URI::CharacterClasses::FRAGMENT)
718
+ Addressable::URI::CharacterClassesRegexps::FRAGMENT)
708
719
  )
709
720
  if return_type == String
710
721
  return encoded_uri.to_s
@@ -755,11 +766,11 @@ module Addressable
755
766
  [
756
767
  self.encode_component(
757
768
  key.gsub(/(\r\n|\n|\r)/, "\r\n"),
758
- CharacterClasses::UNRESERVED
769
+ CharacterClassesRegexps::UNRESERVED
759
770
  ).gsub("%20", "+"),
760
771
  self.encode_component(
761
772
  value.gsub(/(\r\n|\n|\r)/, "\r\n"),
762
- CharacterClasses::UNRESERVED
773
+ CharacterClassesRegexps::UNRESERVED
763
774
  ).gsub("%20", "+")
764
775
  ]
765
776
  end
@@ -1734,20 +1745,20 @@ module Addressable
1734
1745
  buffer = "".dup
1735
1746
  new_query_values.each do |key, value|
1736
1747
  encoded_key = URI.encode_component(
1737
- key, CharacterClasses::UNRESERVED
1748
+ key, CharacterClassesRegexps::UNRESERVED
1738
1749
  )
1739
1750
  if value == nil
1740
1751
  buffer << "#{encoded_key}&"
1741
1752
  elsif value.kind_of?(Array)
1742
1753
  value.each do |sub_value|
1743
1754
  encoded_value = URI.encode_component(
1744
- sub_value, CharacterClasses::UNRESERVED
1755
+ sub_value, CharacterClassesRegexps::UNRESERVED
1745
1756
  )
1746
1757
  buffer << "#{encoded_key}=#{encoded_value}&"
1747
1758
  end
1748
1759
  else
1749
1760
  encoded_value = URI.encode_component(
1750
- value, CharacterClasses::UNRESERVED
1761
+ value, CharacterClassesRegexps::UNRESERVED
1751
1762
  )
1752
1763
  buffer << "#{encoded_key}=#{encoded_value}&"
1753
1764
  end
@@ -23,7 +23,7 @@ if !defined?(Addressable::VERSION)
23
23
  module VERSION
24
24
  MAJOR = 2
25
25
  MINOR = 8
26
- TINY = 5
26
+ TINY = 6
27
27
 
28
28
  STRING = [MAJOR, MINOR, TINY].join('.')
29
29
  end
data/tasks/gem.rake CHANGED
@@ -31,7 +31,7 @@ namespace :gem do
31
31
  s.homepage = "https://github.com/sporkmonger/addressable"
32
32
  s.license = "Apache-2.0"
33
33
  s.metadata = {
34
- "changelog_uri" => "https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md"
34
+ "changelog_uri" => "https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md#v#{PKG_VERSION}"
35
35
  }
36
36
  end
37
37
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: addressable
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.5
4
+ version: 2.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bob Aman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-03 00:00:00.000000000 Z
11
+ date: 2023-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: public_suffix
@@ -91,7 +91,7 @@ homepage: https://github.com/sporkmonger/addressable
91
91
  licenses:
92
92
  - Apache-2.0
93
93
  metadata:
94
- changelog_uri: https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md
94
+ changelog_uri: https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md#v2.8.6
95
95
  post_install_message:
96
96
  rdoc_options:
97
97
  - "--main"
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  requirements: []
112
- rubygems_version: 3.4.18
112
+ rubygems_version: 3.4.22
113
113
  signing_key:
114
114
  specification_version: 4
115
115
  summary: URI Implementation