- Support explicit URL serialization for mixed grammars, and remove explicit prefixes from relative path calculation.
- Add optional explicit
./prefixes when generating same-directory relative URLs.
- Preserve directory and file semantics when generating relative URL paths.
- Add
Protocol::URL::Relative#relative_tofor expressing root-relative URLs relative to a base path.
- Allow paths to compare with their encoded string representation.
- Add conservative normalization of encoded URL paths.
- Allow unfrozen relative and absolute URLs to replace their components.
- Rename
Protocol::URL::FormData::Parser::CONTENT_TYPEtoMEDIA_TYPE.
- Add
Protocol::URL::LimitErrorfor configured processing limits.
- Use consistent limit naming for form data parser constraints.
- Allow
Protocol::URL::FormData::Parser#parseto populate a supplied result object.
- Add
Protocol::URL::FormData::Parserfor incremental, limited parsing ofapplication/x-www-form-urlencodedform data. - Add
Protocol::URL::FormData::Nestedfor consistently building nested form data while preserving absent and empty values.
- Add
Protocol::URL::Encoding.decode_www_formfor decoding HTML form data where+represents a space.
- Add comparison methods to
Protocol::URL::Relative(and by inheritance toProtocol::URL::Absolute):#==for structural equality comparison (compares path, query, fragment components).#===for string equality comparison (enables case statement matching).#<=>for ordering and sorting.#hashfor hash key support.#equal?for component-based equality checking.
- Add JSON serialization support to
Protocol::URL::Relative:#as_jsonreturns the string representation.#to_jsonreturns a JSON-encoded string.
- Add
relative(target, from)for computing relative paths between URLs.
- Move
Protocol::URL::PATTERNtoprotocol/url/pattern.rbso it can be shared more easily.
- Initial implementation.