addressable 2.8.6 → 2.8.8

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: 4023555b4bb6c374726bb9647a29d30943c637115619670a09632fe7a4e28765
4
- data.tar.gz: 95ad31a9e1dd01f2bc9a7c097eb452f07ed52be16dcd2ad4946652648dd7808c
3
+ metadata.gz: 5ba707c598b13c65017d7e0087ab2a5d6e53b549a5dd8d6758bf9f44cd4ce089
4
+ data.tar.gz: 1001a3bd33c3338cb5506831fa2c81a858e4f7e4c3d630b1e5cf8db1bb787179
5
5
  SHA512:
6
- metadata.gz: d7dd6eed173bc4a06a3abb74f6fdbf501ee12b3fcb2828c0f21db98d1779175bce4dc900999269db24cc8647c3148b06cf1d9c768c97c7591a48f1e43751bb7b
7
- data.tar.gz: 3bbe976f23a4c3a6776a44d6ff2147b9ab87418162af57b2f278089528416eb3d564b114f96f165946d9126ee68d5da86c0ac01a9e2fa2792547bb312f40f046
6
+ metadata.gz: 3810b328b2868fdb3929e6e64ddc1a12a8c9f26e092b95ab582f0d2d52e436e960be1434e3608901d2d657fc86df03f91467383720c70304a3fdaeaa040a2a1c
7
+ data.tar.gz: 482415fe1a529fc5c43183bcd5d3673360d2886467435b8a8c8ed01ab3b8792265808f67704ce01b0d1af5d4888aaa75cc11af464bad70e0e78827f8b56f5cb5
data/CHANGELOG.md CHANGED
@@ -1,9 +1,23 @@
1
- # Addressable 2.8.6 <a name="v2.8.6">
1
+ # Changelog
2
+
3
+ ## Addressable 2.8.8 <a name="v2.8.8">
4
+ - Replace the `unicode.data` blob by a ruby constant ([#561])
5
+ - Allow `public_suffix` 7 ([#558])
6
+
7
+ [#561]: https://github.com/sporkmonger/addressable/pull/561
8
+ [#535]: https://github.com/sporkmonger/addressable/pull/558
9
+
10
+ ## Addressable 2.8.7 <a name="v2.8.7">
11
+ - Allow `public_suffix` 6 ([#535])
12
+
13
+ [#535]: https://github.com/sporkmonger/addressable/pull/535
14
+
15
+ ## Addressable 2.8.6 <a name="v2.8.6">
2
16
  - Memoize regexps for common character classes ([#524])
3
17
 
4
18
  [#524]: https://github.com/sporkmonger/addressable/pull/524
5
19
 
6
- # Addressable 2.8.5 <a name="v2.8.5">
20
+ ## Addressable 2.8.5 <a name="v2.8.5">
7
21
  - Fix thread safety issue with encoding tables ([#515])
8
22
  - Define URI::NONE as a module to avoid serialization issues ([#509])
9
23
  - Fix YAML serialization ([#508])
@@ -12,18 +26,18 @@
12
26
  [#509]: https://github.com/sporkmonger/addressable/pull/509
13
27
  [#515]: https://github.com/sporkmonger/addressable/pull/515
14
28
 
15
- # Addressable 2.8.4 <a name="v2.8.4">
29
+ ## Addressable 2.8.4 <a name="v2.8.4">
16
30
  - Restore `Addressable::IDNA.unicode_normalize_kc` as a deprecated method ([#504])
17
31
 
18
32
  [#504]: https://github.com/sporkmonger/addressable/pull/504
19
33
 
20
- # Addressable 2.8.3 <a name="v2.8.3">
34
+ ## Addressable 2.8.3 <a name="v2.8.3">
21
35
  - Fix template expand level 2 hash support for non-string objects ([#499], [#498])
22
36
 
23
37
  [#499]: https://github.com/sporkmonger/addressable/pull/499
24
38
  [#498]: https://github.com/sporkmonger/addressable/pull/498
25
39
 
26
- # Addressable 2.8.2 <a name="v2.8.2">
40
+ ## Addressable 2.8.2 <a name="v2.8.2">
27
41
  - Improve cache hits and JIT friendliness ([#486](https://github.com/sporkmonger/addressable/pull/486))
28
42
  - Improve code style and test coverage ([#482](https://github.com/sporkmonger/addressable/pull/482))
29
43
  - Ensure reset of deferred validation ([#481](https://github.com/sporkmonger/addressable/pull/481))
@@ -32,7 +46,7 @@
32
46
 
33
47
  [#492]: https://github.com/sporkmonger/addressable/pull/492
34
48
 
35
- # Addressable 2.8.1 <a name="v2.8.1">
49
+ ## Addressable 2.8.1 <a name="v2.8.1">
36
50
  - refactor `Addressable::URI.normalize_path` to address linter offenses ([#430](https://github.com/sporkmonger/addressable/pull/430))
37
51
  - update gemspec to reflect supported Ruby versions ([#466], [#464], [#463])
38
52
  - compatibility w/ public_suffix 5.x ([#466], [#465], [#460])
@@ -48,7 +62,7 @@
48
62
  [#465]: https://github.com/sporkmonger/addressable/pull/465
49
63
  [#466]: https://github.com/sporkmonger/addressable/pull/466
50
64
 
51
- # Addressable 2.8.0 <a name="v2.8.0">
65
+ ## Addressable 2.8.0 <a name="v2.8.0">
52
66
  - fixes ReDoS vulnerability in Addressable::Template#match
53
67
  - no longer replaces `+` with spaces in queries for non-http(s) schemes
54
68
  - fixed encoding ipv6 literals
@@ -60,14 +74,14 @@
60
74
  - performance improvements
61
75
  - switch CI/CD to GitHub Actions
62
76
 
63
- # Addressable 2.7.0 <a name="v2.7.0">
77
+ ## Addressable 2.7.0 <a name="v2.7.0">
64
78
  - added `:compacted` flag to `normalized_query`
65
79
  - `heuristic_parse` handles `mailto:` more intuitively
66
80
  - dropped explicit support for JRuby 9.0.5.0
67
81
  - compatibility w/ public_suffix 4.x
68
82
  - performance improvements
69
83
 
70
- # Addressable 2.6.0 <a name="v2.6.0">
84
+ ## Addressable 2.6.0 <a name="v2.6.0">
71
85
  - added `tld=` method to allow assignment to the public suffix
72
86
  - most `heuristic_parse` patterns are now case-insensitive
73
87
  - `heuristic_parse` handles more `file://` URI variations
@@ -78,17 +92,17 @@
78
92
  - minor performance improvements in regexps
79
93
  - fixes to eliminate warnings
80
94
 
81
- # Addressable 2.5.2 <a name="v2.5.2">
95
+ ## Addressable 2.5.2 <a name="v2.5.2">
82
96
  - better support for frozen string literals
83
97
  - fixed bug w/ uppercase characters in scheme
84
98
  - IDNA errors w/ emoji URLs
85
99
  - compatibility w/ public_suffix 3.x
86
100
 
87
- # Addressable 2.5.1 <a name="v2.5.1">
101
+ ## Addressable 2.5.1 <a name="v2.5.1">
88
102
  - allow unicode normalization to be disabled for URI Template expansion
89
103
  - removed duplicate test
90
104
 
91
- # Addressable 2.5.0 <a name="v2.5.0">
105
+ ## Addressable 2.5.0 <a name="v2.5.0">
92
106
  - dropping support for Ruby 1.9
93
107
  - adding support for Ruby 2.4 preview
94
108
  - add support for public suffixes and tld; first runtime dependency
@@ -102,7 +116,7 @@
102
116
  - host parts longer than 63 bytes will be ignored and not passed to libidn
103
117
  - normalized values always encoded as UTF-8
104
118
 
105
- # Addressable 2.4.0 <a name="v2.4.0">
119
+ ## Addressable 2.4.0 <a name="v2.4.0">
106
120
  - support for 1.8.x dropped
107
121
  - double quotes in a host now raises an error
108
122
  - newlines in host will no longer get unescaped during normalization
@@ -114,17 +128,17 @@
114
128
  - fixed minor bug where an exception would be thrown for a missing ACE suffix
115
129
  - better partial expansion of URI templates
116
130
 
117
- # Addressable 2.3.8 <a name="v2.3.8">
131
+ ## Addressable 2.3.8 <a name="v2.3.8">
118
132
  - fix warnings
119
133
  - update dependency gems
120
134
  - support for 1.8.x officially deprecated
121
135
 
122
- # Addressable 2.3.7 <a name="v2.3.7">
136
+ ## Addressable 2.3.7 <a name="v2.3.7">
123
137
  - fix scenario in which invalid URIs don't get an exception until inspected
124
138
  - handle hostnames with two adjacent periods correctly
125
139
  - upgrade of RSpec
126
140
 
127
- # Addressable 2.3.6 <a name="v2.3.6">
141
+ ## Addressable 2.3.6 <a name="v2.3.6">
128
142
  - normalization drops empty query string
129
143
  - better handling in template extract for missing values
130
144
  - template modifier for `'?'` now treated as optional
@@ -133,19 +147,19 @@
133
147
  - added `:sorted` option to normalization of query strings
134
148
  - fixed issue with normalization of hosts given in `'example.com.'` form
135
149
 
136
- # Addressable 2.3.5 <a name="v2.3.5">
150
+ ## Addressable 2.3.5 <a name="v2.3.5">
137
151
  - added Addressable::URI#empty? method
138
152
  - Addressable::URI#hostname methods now strip square brackets from IPv6 hosts
139
153
  - compatibility with Net::HTTP in Ruby 2.0.0
140
154
  - Addressable::URI#route_from should always give relative URIs
141
155
 
142
- # Addressable 2.3.4 <a name="v2.3.4">
156
+ ## Addressable 2.3.4 <a name="v2.3.4">
143
157
  - fixed issue with encoding altering its inputs
144
158
  - query string normalization now leaves ';' characters alone
145
159
  - FakeFS is detected before attempting to load unicode tables
146
160
  - additional testing to ensure frozen objects don't cause problems
147
161
 
148
- # Addressable 2.3.3 <a name="v2.3.3">
162
+ ## Addressable 2.3.3 <a name="v2.3.3">
149
163
  - fixed issue with converting common primitives during template expansion
150
164
  - fixed port encoding issue
151
165
  - removed a few warnings
@@ -154,59 +168,59 @@
154
168
  - no template match should now result in nil instead of an empty MatchData
155
169
  - added license information to gemspec
156
170
 
157
- # Addressable 2.3.2 <a name="v2.3.2">
171
+ ## Addressable 2.3.2 <a name="v2.3.2">
158
172
  - added Addressable::URI#default_port method
159
173
  - fixed issue with Marshalling Unicode data on Windows
160
174
  - improved heuristic parsing to better handle IPv4 addresses
161
175
 
162
- # Addressable 2.3.1 <a name="v2.3.1">
176
+ ## Addressable 2.3.1 <a name="v2.3.1">
163
177
  - fixed missing unicode data file
164
178
 
165
- # Addressable 2.3.0 <a name="v2.3.0">
179
+ ## Addressable 2.3.0 <a name="v2.3.0">
166
180
  - updated Addressable::Template to use RFC 6570, level 4
167
181
  - fixed compatibility problems with some versions of Ruby
168
182
  - moved unicode tables into a data file for performance reasons
169
183
  - removing support for multiple query value notations
170
184
 
171
- # Addressable 2.2.8 <a name="v2.2.8">
185
+ ## Addressable 2.2.8 <a name="v2.2.8">
172
186
  - fixed issues with dot segment removal code
173
187
  - form encoding can now handle multiple values per key
174
188
  - updated development environment
175
189
 
176
- # Addressable 2.2.7 <a name="v2.2.7">
190
+ ## Addressable 2.2.7 <a name="v2.2.7">
177
191
  - fixed issues related to Addressable::URI#query_values=
178
192
  - the Addressable::URI.parse method is now polymorphic
179
193
 
180
- # Addressable 2.2.6 <a name="v2.2.6">
194
+ ## Addressable 2.2.6 <a name="v2.2.6">
181
195
  - changed the way ambiguous paths are handled
182
196
  - fixed bug with frozen URIs
183
197
  - https supported in heuristic parsing
184
198
 
185
- # Addressable 2.2.5 <a name="v2.2.5">
199
+ ## Addressable 2.2.5 <a name="v2.2.5">
186
200
  - 'parsing' a pre-parsed URI object is now a dup operation
187
201
  - introduced conditional support for libidn
188
202
  - fixed normalization issue on ampersands in query strings
189
203
  - added additional tests around handling of query strings
190
204
 
191
- # Addressable 2.2.4 <a name="v2.2.4">
205
+ ## Addressable 2.2.4 <a name="v2.2.4">
192
206
  - added origin support from draft-ietf-websec-origin-00
193
207
  - resolved issue with attempting to navigate below root
194
208
  - fixed bug with string splitting in query strings
195
209
 
196
- # Addressable 2.2.3 <a name="v2.2.3">
210
+ ## Addressable 2.2.3 <a name="v2.2.3">
197
211
  - added :flat_array notation for query strings
198
212
 
199
- # Addressable 2.2.2 <a name="v2.2.2">
213
+ ## Addressable 2.2.2 <a name="v2.2.2">
200
214
  - fixed issue with percent escaping of '+' character in query strings
201
215
 
202
- # Addressable 2.2.1 <a name="v2.2.1">
216
+ ## Addressable 2.2.1 <a name="v2.2.1">
203
217
  - added support for application/x-www-form-urlencoded.
204
218
 
205
- # Addressable 2.2.0 <a name="v2.2.0">
219
+ ## Addressable 2.2.0 <a name="v2.2.0">
206
220
  - added site methods
207
221
  - improved documentation
208
222
 
209
- # Addressable 2.1.2 <a name="v2.1.2">
223
+ ## Addressable 2.1.2 <a name="v2.1.2">
210
224
  - added HTTP request URI methods
211
225
  - better handling of Windows file paths
212
226
  - validation_deferred boolean replaced with defer_validation block
@@ -214,14 +228,14 @@
214
228
  - fixed issue with constructing URIs with relative paths
215
229
  - fixed warnings
216
230
 
217
- # Addressable 2.1.1 <a name="v2.1.1">
231
+ ## Addressable 2.1.1 <a name="v2.1.1">
218
232
  - more type checking changes
219
233
  - fixed issue with unicode normalization
220
234
  - added method to find template defaults
221
235
  - symbolic keys are now allowed in template mappings
222
236
  - numeric values and symbolic values are now allowed in template mappings
223
237
 
224
- # Addressable 2.1.0 <a name="v2.1.0">
238
+ ## Addressable 2.1.0 <a name="v2.1.0x">
225
239
  - refactored URI template support out into its own class
226
240
  - removed extract method due to being useless and unreliable
227
241
  - removed Addressable::URI.expand_template
@@ -235,15 +249,15 @@
235
249
  - worked around issue with freezing URIs
236
250
  - improved specs
237
251
 
238
- # Addressable 2.0.2 <a name="v2.0.2">
252
+ ## Addressable 2.0.2 <a name="v2.0.2">
239
253
  - fixed issue with URI template expansion
240
254
  - fixed issue with percent escaping characters 0-15
241
255
 
242
- # Addressable 2.0.1 <a name="v2.0.1">
256
+ ## Addressable 2.0.1 <a name="v2.0.1">
243
257
  - fixed issue with query string assignment
244
258
  - fixed issue with improperly encoded components
245
259
 
246
- # Addressable 2.0.0 <a name="v2.0.0">
260
+ ## Addressable 2.0.0 <a name="v2.0.0">
247
261
  - the initialize method now takes an options hash as its only parameter
248
262
  - added query_values method to URI class
249
263
  - completely replaced IDNA implementation with pure Ruby
@@ -258,20 +272,20 @@
258
272
  - updated URI Template code to match v 03 of the draft spec
259
273
  - added a bunch of new specifications
260
274
 
261
- # Addressable 1.0.4 <a name="v1.0.4">
275
+ ## Addressable 1.0.4 <a name="v1.0.4">
262
276
  - switched to using RSpec's pending system for specs that rely on IDN
263
277
  - fixed issue with creating URIs with paths that are not prefixed with '/'
264
278
 
265
- # Addressable 1.0.3 <a name="v1.0.3">
279
+ ## Addressable 1.0.3 <a name="v1.0.3">
266
280
  - implemented a hash method
267
281
 
268
- # Addressable 1.0.2 <a name="v1.0.2">
282
+ ## Addressable 1.0.2 <a name="v1.0.2">
269
283
  - fixed minor bug with the extract_mapping method
270
284
 
271
- # Addressable 1.0.1 <a name="v1.0.1">
285
+ ## Addressable 1.0.1 <a name="v1.0.1">
272
286
  - fixed minor bug with the extract_mapping method
273
287
 
274
- # Addressable 1.0.0 <a name="v1.0.0">
288
+ ## Addressable 1.0.0 <a name="v1.0.0">
275
289
  - heuristic parse method added
276
290
  - parsing is slightly more strict
277
291
  - replaced to_h with to_hash
@@ -280,16 +294,16 @@
280
294
  - improved heckle rake task
281
295
  - no surviving heckle mutations
282
296
 
283
- # Addressable 0.1.2 <a name="v0.1.2">
297
+ ## Addressable 0.1.2 <a name="v0.1.2">
284
298
  - improved normalization
285
299
  - fixed bug in joining algorithm
286
300
  - updated specifications
287
301
 
288
- # Addressable 0.1.1 <a name="v0.1.1">
302
+ ## Addressable 0.1.1 <a name="v0.1.1">
289
303
  - updated documentation
290
304
  - added URI Template variable extraction
291
305
 
292
- # Addressable 0.1.0 <a name="v0.1.0">
306
+ ## Addressable 0.1.0 <a name="v0.1.0">
293
307
  - initial release
294
308
  - implementation based on RFC 3986, 3987
295
309
  - support for IRIs via libidn
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ source 'https://rubygems.org'
5
5
  gemspec
6
6
 
7
7
  group :test do
8
+ gem 'bigdecimal' if RUBY_VERSION > '2.4'
8
9
  gem 'rspec', '~> 3.8'
9
10
  gem 'rspec-its', '~> 1.3'
10
11
  end
data/README.md CHANGED
@@ -17,7 +17,7 @@
17
17
  [coveralls]: https://coveralls.io/r/sporkmonger/addressable
18
18
  [inch]: https://inch-ci.org/github/sporkmonger/addressable
19
19
 
20
- # Description
20
+ ## Description
21
21
 
22
22
  Addressable is an alternative implementation to the URI implementation
23
23
  that is part of Ruby's standard library. It is flexible, offers heuristic
@@ -25,12 +25,12 @@ parsing, and additionally provides extensive support for IRIs and URI templates.
25
25
 
26
26
  Addressable closely conforms to RFC 3986, RFC 3987, and RFC 6570 (level 4).
27
27
 
28
- # Reference
28
+ ## Reference
29
29
 
30
30
  - {Addressable::URI}
31
31
  - {Addressable::Template}
32
32
 
33
- # Example usage
33
+ ## Example usage
34
34
 
35
35
  ```ruby
36
36
  require "addressable/uri"
@@ -49,7 +49,7 @@ uri.normalize
49
49
  ```
50
50
 
51
51
 
52
- # URI Templates
52
+ ## URI Templates
53
53
 
54
54
  For more details, see [RFC 6570](https://www.rfc-editor.org/rfc/rfc6570.txt).
55
55
 
@@ -88,7 +88,7 @@ template.extract(uri)
88
88
  # }
89
89
  ```
90
90
 
91
- # Install
91
+ ## Install
92
92
 
93
93
  ```console
94
94
  $ gem install addressable
@@ -103,7 +103,7 @@ $ brew install libidn # OS X
103
103
  $ gem install idn-ruby
104
104
  ```
105
105
 
106
- # Semantic Versioning
106
+ ## Semantic Versioning
107
107
 
108
108
  This project uses [Semantic Versioning](https://semver.org/). You can (and should) specify your
109
109
  dependency using a pessimistic version constraint covering the major and minor
data/Rakefile CHANGED
@@ -34,7 +34,4 @@ PKG_FILES = FileList[
34
34
 
35
35
  task :default => "spec"
36
36
 
37
- WINDOWS = (RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/) rescue false
38
- SUDO = WINDOWS ? '' : ('sudo' unless ENV['SUDOLESS'])
39
-
40
37
  Dir['tasks/**/*.rake'].each { |rake| load rake }
data/addressable.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: addressable 2.8.6 ruby lib
2
+ # stub: addressable 2.8.8 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "addressable".freeze
6
- s.version = "2.8.6".freeze
6
+ s.version = "2.8.8".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#v2.8.6" } if s.respond_to? :metadata=
9
+ s.metadata = { "changelog_uri" => "https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md#v2.8.8" } if s.respond_to? :metadata=
10
10
  s.require_paths = ["lib".freeze]
11
11
  s.authors = ["Bob Aman".freeze]
12
- s.date = "2023-12-09"
12
+ s.date = "2025-11-24"
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.22".freeze
21
+ s.rubygems_version = "3.7.2".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".freeze, "< 6.0".freeze])
26
+ s.add_runtime_dependency(%q<public_suffix>.freeze, [">= 2.0.2".freeze, "< 8.0".freeze])
27
27
  s.add_development_dependency(%q<bundler>.freeze, [">= 1.0".freeze, "< 3.0".freeze])
28
28
  end