diff --git a/CHANGELOG.md b/CHANGELOG.md index bf21002e..07a5642e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,16 @@ -# Addressable 2.8.7 +# Changelog + +## Addressable 2.8.7 - Allow `public_suffix` 6 ([#535]) [#535]: https://github.com/sporkmonger/addressable/pull/535 -# Addressable 2.8.6 +## Addressable 2.8.6 - Memoize regexps for common character classes ([#524]) [#524]: https://github.com/sporkmonger/addressable/pull/524 -# Addressable 2.8.5 +## Addressable 2.8.5 - Fix thread safety issue with encoding tables ([#515]) - Define URI::NONE as a module to avoid serialization issues ([#509]) - Fix YAML serialization ([#508]) @@ -17,18 +19,18 @@ [#509]: https://github.com/sporkmonger/addressable/pull/509 [#515]: https://github.com/sporkmonger/addressable/pull/515 -# Addressable 2.8.4 +## Addressable 2.8.4 - Restore `Addressable::IDNA.unicode_normalize_kc` as a deprecated method ([#504]) [#504]: https://github.com/sporkmonger/addressable/pull/504 -# Addressable 2.8.3 +## Addressable 2.8.3 - Fix template expand level 2 hash support for non-string objects ([#499], [#498]) [#499]: https://github.com/sporkmonger/addressable/pull/499 [#498]: https://github.com/sporkmonger/addressable/pull/498 -# Addressable 2.8.2 +## Addressable 2.8.2 - Improve cache hits and JIT friendliness ([#486](https://github.com/sporkmonger/addressable/pull/486)) - Improve code style and test coverage ([#482](https://github.com/sporkmonger/addressable/pull/482)) - Ensure reset of deferred validation ([#481](https://github.com/sporkmonger/addressable/pull/481)) @@ -37,7 +39,7 @@ [#492]: https://github.com/sporkmonger/addressable/pull/492 -# Addressable 2.8.1 +## Addressable 2.8.1 - refactor `Addressable::URI.normalize_path` to address linter offenses ([#430](https://github.com/sporkmonger/addressable/pull/430)) - update gemspec to reflect supported Ruby versions ([#466], [#464], [#463]) - compatibility w/ public_suffix 5.x ([#466], [#465], [#460]) @@ -53,7 +55,7 @@ [#465]: https://github.com/sporkmonger/addressable/pull/465 [#466]: https://github.com/sporkmonger/addressable/pull/466 -# Addressable 2.8.0 +## Addressable 2.8.0 - fixes ReDoS vulnerability in Addressable::Template#match - no longer replaces `+` with spaces in queries for non-http(s) schemes - fixed encoding ipv6 literals @@ -65,14 +67,14 @@ - performance improvements - switch CI/CD to GitHub Actions -# Addressable 2.7.0 +## Addressable 2.7.0 - added `:compacted` flag to `normalized_query` - `heuristic_parse` handles `mailto:` more intuitively - dropped explicit support for JRuby 9.0.5.0 - compatibility w/ public_suffix 4.x - performance improvements -# Addressable 2.6.0 +## Addressable 2.6.0 - added `tld=` method to allow assignment to the public suffix - most `heuristic_parse` patterns are now case-insensitive - `heuristic_parse` handles more `file://` URI variations @@ -83,17 +85,17 @@ - minor performance improvements in regexps - fixes to eliminate warnings -# Addressable 2.5.2 +## Addressable 2.5.2 - better support for frozen string literals - fixed bug w/ uppercase characters in scheme - IDNA errors w/ emoji URLs - compatibility w/ public_suffix 3.x -# Addressable 2.5.1 +## Addressable 2.5.1 - allow unicode normalization to be disabled for URI Template expansion - removed duplicate test -# Addressable 2.5.0 +## Addressable 2.5.0 - dropping support for Ruby 1.9 - adding support for Ruby 2.4 preview - add support for public suffixes and tld; first runtime dependency @@ -107,7 +109,7 @@ - host parts longer than 63 bytes will be ignored and not passed to libidn - normalized values always encoded as UTF-8 -# Addressable 2.4.0 +## Addressable 2.4.0 - support for 1.8.x dropped - double quotes in a host now raises an error - newlines in host will no longer get unescaped during normalization @@ -119,17 +121,17 @@ - fixed minor bug where an exception would be thrown for a missing ACE suffix - better partial expansion of URI templates -# Addressable 2.3.8 +## Addressable 2.3.8 - fix warnings - update dependency gems - support for 1.8.x officially deprecated -# Addressable 2.3.7 +## Addressable 2.3.7 - fix scenario in which invalid URIs don't get an exception until inspected - handle hostnames with two adjacent periods correctly - upgrade of RSpec -# Addressable 2.3.6 +## Addressable 2.3.6 - normalization drops empty query string - better handling in template extract for missing values - template modifier for `'?'` now treated as optional @@ -138,19 +140,19 @@ - added `:sorted` option to normalization of query strings - fixed issue with normalization of hosts given in `'example.com.'` form -# Addressable 2.3.5 +## Addressable 2.3.5 - added Addressable::URI#empty? method - Addressable::URI#hostname methods now strip square brackets from IPv6 hosts - compatibility with Net::HTTP in Ruby 2.0.0 - Addressable::URI#route_from should always give relative URIs -# Addressable 2.3.4 +## Addressable 2.3.4 - fixed issue with encoding altering its inputs - query string normalization now leaves ';' characters alone - FakeFS is detected before attempting to load unicode tables - additional testing to ensure frozen objects don't cause problems -# Addressable 2.3.3 +## Addressable 2.3.3 - fixed issue with converting common primitives during template expansion - fixed port encoding issue - removed a few warnings @@ -159,59 +161,59 @@ - no template match should now result in nil instead of an empty MatchData - added license information to gemspec -# Addressable 2.3.2 +## Addressable 2.3.2 - added Addressable::URI#default_port method - fixed issue with Marshalling Unicode data on Windows - improved heuristic parsing to better handle IPv4 addresses -# Addressable 2.3.1 +## Addressable 2.3.1 - fixed missing unicode data file -# Addressable 2.3.0 +## Addressable 2.3.0 - updated Addressable::Template to use RFC 6570, level 4 - fixed compatibility problems with some versions of Ruby - moved unicode tables into a data file for performance reasons - removing support for multiple query value notations -# Addressable 2.2.8 +## Addressable 2.2.8 - fixed issues with dot segment removal code - form encoding can now handle multiple values per key - updated development environment -# Addressable 2.2.7 +## Addressable 2.2.7 - fixed issues related to Addressable::URI#query_values= - the Addressable::URI.parse method is now polymorphic -# Addressable 2.2.6 +## Addressable 2.2.6 - changed the way ambiguous paths are handled - fixed bug with frozen URIs - https supported in heuristic parsing -# Addressable 2.2.5 +## Addressable 2.2.5 - 'parsing' a pre-parsed URI object is now a dup operation - introduced conditional support for libidn - fixed normalization issue on ampersands in query strings - added additional tests around handling of query strings -# Addressable 2.2.4 +## Addressable 2.2.4 - added origin support from draft-ietf-websec-origin-00 - resolved issue with attempting to navigate below root - fixed bug with string splitting in query strings -# Addressable 2.2.3 +## Addressable 2.2.3 - added :flat_array notation for query strings -# Addressable 2.2.2 +## Addressable 2.2.2 - fixed issue with percent escaping of '+' character in query strings -# Addressable 2.2.1 +## Addressable 2.2.1 - added support for application/x-www-form-urlencoded. -# Addressable 2.2.0 +## Addressable 2.2.0 - added site methods - improved documentation -# Addressable 2.1.2 +## Addressable 2.1.2 - added HTTP request URI methods - better handling of Windows file paths - validation_deferred boolean replaced with defer_validation block @@ -219,14 +221,14 @@ - fixed issue with constructing URIs with relative paths - fixed warnings -# Addressable 2.1.1 +## Addressable 2.1.1 - more type checking changes - fixed issue with unicode normalization - added method to find template defaults - symbolic keys are now allowed in template mappings - numeric values and symbolic values are now allowed in template mappings -# Addressable 2.1.0 +## Addressable 2.1.0 - refactored URI template support out into its own class - removed extract method due to being useless and unreliable - removed Addressable::URI.expand_template @@ -240,15 +242,15 @@ - worked around issue with freezing URIs - improved specs -# Addressable 2.0.2 +## Addressable 2.0.2 - fixed issue with URI template expansion - fixed issue with percent escaping characters 0-15 -# Addressable 2.0.1 +## Addressable 2.0.1 - fixed issue with query string assignment - fixed issue with improperly encoded components -# Addressable 2.0.0 +## Addressable 2.0.0 - the initialize method now takes an options hash as its only parameter - added query_values method to URI class - completely replaced IDNA implementation with pure Ruby @@ -263,20 +265,20 @@ - updated URI Template code to match v 03 of the draft spec - added a bunch of new specifications -# Addressable 1.0.4 +## Addressable 1.0.4 - switched to using RSpec's pending system for specs that rely on IDN - fixed issue with creating URIs with paths that are not prefixed with '/' -# Addressable 1.0.3 +## Addressable 1.0.3 - implemented a hash method -# Addressable 1.0.2 +## Addressable 1.0.2 - fixed minor bug with the extract_mapping method -# Addressable 1.0.1 +## Addressable 1.0.1 - fixed minor bug with the extract_mapping method -# Addressable 1.0.0 +## Addressable 1.0.0 - heuristic parse method added - parsing is slightly more strict - replaced to_h with to_hash @@ -285,16 +287,16 @@ - improved heckle rake task - no surviving heckle mutations -# Addressable 0.1.2 +## Addressable 0.1.2 - improved normalization - fixed bug in joining algorithm - updated specifications -# Addressable 0.1.1 +## Addressable 0.1.1 - updated documentation - added URI Template variable extraction -# Addressable 0.1.0 +## Addressable 0.1.0 - initial release - implementation based on RFC 3986, 3987 - support for IRIs via libidn diff --git a/README.md b/README.md index 9892f615..d9fa04f2 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ [coveralls]: https://coveralls.io/r/sporkmonger/addressable [inch]: https://inch-ci.org/github/sporkmonger/addressable -# Description +## Description Addressable is an alternative implementation to the URI implementation 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. Addressable closely conforms to RFC 3986, RFC 3987, and RFC 6570 (level 4). -# Reference +## Reference - {Addressable::URI} - {Addressable::Template} -# Example usage +## Example usage ```ruby require "addressable/uri" @@ -49,7 +49,7 @@ uri.normalize ``` -# URI Templates +## URI Templates For more details, see [RFC 6570](https://www.rfc-editor.org/rfc/rfc6570.txt). @@ -88,7 +88,7 @@ template.extract(uri) # } ``` -# Install +## Install ```console $ gem install addressable @@ -103,7 +103,7 @@ $ brew install libidn # OS X $ gem install idn-ruby ``` -# Semantic Versioning +## Semantic Versioning This project uses [Semantic Versioning](https://semver.org/). You can (and should) specify your dependency using a pessimistic version constraint covering the major and minor