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 +4 -4
- data/CHANGELOG.md +59 -45
- data/Gemfile +1 -0
- data/README.md +6 -6
- data/Rakefile +0 -3
- data/addressable.gemspec +6 -6
- data/lib/addressable/idna/pure.rb +4235 -20
- data/lib/addressable/template.rb +1 -1
- data/lib/addressable/uri.rb +2 -2
- data/lib/addressable/version.rb +1 -1
- data/spec/addressable/uri_spec.rb +15 -1
- data/tasks/gem.rake +8 -3
- data/tasks/profile.rake +1 -1
- metadata +6 -10
- data/data/unicode.data +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5ba707c598b13c65017d7e0087ab2a5d6e53b549a5dd8d6758bf9f44cd4ce089
|
|
4
|
+
data.tar.gz: 1001a3bd33c3338cb5506831fa2c81a858e4f7e4c3d630b1e5cf8db1bb787179
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3810b328b2868fdb3929e6e64ddc1a12a8c9f26e092b95ab582f0d2d52e436e960be1434e3608901d2d657fc86df03f91467383720c70304a3fdaeaa040a2a1c
|
|
7
|
+
data.tar.gz: 482415fe1a529fc5c43183bcd5d3673360d2886467435b8a8c8ed01ab3b8792265808f67704ce01b0d1af5d4888aaa75cc11af464bad70e0e78827f8b56f5cb5
|
data/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
|
-
#
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
176
|
+
## Addressable 2.3.1 <a name="v2.3.1">
|
|
163
177
|
- fixed missing unicode data file
|
|
164
178
|
|
|
165
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
210
|
+
## Addressable 2.2.3 <a name="v2.2.3">
|
|
197
211
|
- added :flat_array notation for query strings
|
|
198
212
|
|
|
199
|
-
|
|
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
|
-
|
|
216
|
+
## Addressable 2.2.1 <a name="v2.2.1">
|
|
203
217
|
- added support for application/x-www-form-urlencoded.
|
|
204
218
|
|
|
205
|
-
|
|
219
|
+
## Addressable 2.2.0 <a name="v2.2.0">
|
|
206
220
|
- added site methods
|
|
207
221
|
- improved documentation
|
|
208
222
|
|
|
209
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
279
|
+
## Addressable 1.0.3 <a name="v1.0.3">
|
|
266
280
|
- implemented a hash method
|
|
267
281
|
|
|
268
|
-
|
|
282
|
+
## Addressable 1.0.2 <a name="v1.0.2">
|
|
269
283
|
- fixed minor bug with the extract_mapping method
|
|
270
284
|
|
|
271
|
-
|
|
285
|
+
## Addressable 1.0.1 <a name="v1.0.1">
|
|
272
286
|
- fixed minor bug with the extract_mapping method
|
|
273
287
|
|
|
274
|
-
|
|
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
|
-
|
|
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
|
-
|
|
302
|
+
## Addressable 0.1.1 <a name="v0.1.1">
|
|
289
303
|
- updated documentation
|
|
290
304
|
- added URI Template variable extraction
|
|
291
305
|
|
|
292
|
-
|
|
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
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
|
-
|
|
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
|
-
|
|
28
|
+
## Reference
|
|
29
29
|
|
|
30
30
|
- {Addressable::URI}
|
|
31
31
|
- {Addressable::Template}
|
|
32
32
|
|
|
33
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
data/addressable.gemspec
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: addressable 2.8.
|
|
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
|
+
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.
|
|
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 = "
|
|
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.
|
|
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, "<
|
|
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
|