2016-03-10 19:49:49 +00:00
|
|
|
# Change Log
|
|
|
|
|
|
|
|
All notable changes to Radix project will be documented in this file.
|
|
|
|
This project aims to comply with [Semantic Versioning](http://semver.org/),
|
|
|
|
so please check *Changed* and *Removed* notes before upgrading.
|
|
|
|
|
2016-04-14 23:46:12 +00:00
|
|
|
## [Unreleased]
|
2019-01-02 18:02:51 +00:00
|
|
|
|
2021-03-23 12:15:56 +00:00
|
|
|
## [0.4.1] - 2021-03-23
|
2021-03-23 12:12:16 +00:00
|
|
|
### Fixed
|
|
|
|
- Indicate minimum Crystal version (for 1.0 compatibility) [#32](https://github.com/luislavena/radix/pull/32) (@carlhoerberg)
|
|
|
|
|
2021-01-31 03:01:06 +00:00
|
|
|
## [0.4.0] - 2021-01-31
|
2021-01-31 01:25:26 +00:00
|
|
|
### Fixed
|
|
|
|
- Correct lookup issue caused by partial shared key with glob [#23](https://github.com/luislavena/radix/issues/23)
|
2021-01-31 02:31:19 +00:00
|
|
|
- Correct lookup caused by non-root key in suffix [#27](https://github.com/luislavena/radix/issues/27)
|
2021-01-31 01:25:26 +00:00
|
|
|
|
2021-01-30 23:15:47 +00:00
|
|
|
### Removed
|
2021-01-31 03:01:06 +00:00
|
|
|
- Remove `Radix::Result#key` since exposes internal details about structure (**breaking change**)
|
2021-01-30 23:15:47 +00:00
|
|
|
|
2019-01-02 18:02:51 +00:00
|
|
|
## [0.3.9] - 2019-01-02
|
2019-01-02 17:59:44 +00:00
|
|
|
### Fixed
|
|
|
|
- Correct catch-all issue caused when paths differ [#26](https://github.com/luislavena/radix/pull/26) (@silasb)
|
2017-03-12 16:02:56 +00:00
|
|
|
|
|
|
|
## [0.3.8] - 2017-03-12
|
2017-03-12 15:36:05 +00:00
|
|
|
### Fixed
|
|
|
|
- Correct lookup issue caused by incorrect comparison of shared key [#21](https://github.com/luislavena/radix/issues/21)
|
2017-02-18 23:30:05 +00:00
|
|
|
- Improve support for non-ascii keys in a tree.
|
2017-02-04 16:00:14 +00:00
|
|
|
|
|
|
|
## [0.3.7] - 2017-02-04
|
2017-02-04 15:10:51 +00:00
|
|
|
### Fixed
|
|
|
|
- Correct prioritization of node's children using combination of kind and
|
|
|
|
priority, allowing partial shared keys to coexist and resolve lookup.
|
2017-01-18 15:29:43 +00:00
|
|
|
|
|
|
|
## [0.3.6] - 2017-01-18
|
2017-01-17 17:30:20 +00:00
|
|
|
### Fixed
|
|
|
|
- Correct lookup issue caused by similar priority between named paramter and
|
|
|
|
shared partial key [kemalcr/kemal#293](https://github.com/kemalcr/kemal/issues/293)
|
2016-11-25 00:04:15 +00:00
|
|
|
|
|
|
|
## [0.3.5] - 2016-11-24
|
2016-11-24 23:52:07 +00:00
|
|
|
### Fixed
|
|
|
|
- Correct lookup issue when dealing with catch all and shared partial key (@crisward)
|
2016-11-12 16:58:42 +00:00
|
|
|
|
2016-11-12 18:47:10 +00:00
|
|
|
## [0.3.4] - 2016-11-12
|
|
|
|
### Fixed
|
|
|
|
- Ensure catch all parameter can be used as optional globbing (@jwoertink)
|
|
|
|
|
|
|
|
## [0.3.3] - 2016-11-12 [YANKED]
|
2016-11-12 15:49:23 +00:00
|
|
|
### Fixed
|
|
|
|
- Ensure catch all parameter can be used as optional globbing (@jwoertink)
|
2016-11-05 18:32:44 +00:00
|
|
|
|
|
|
|
## [0.3.2] - 2016-11-05
|
2016-11-05 16:42:20 +00:00
|
|
|
### Fixed
|
|
|
|
- Do not force adding paths with shared named parameter in an specific order (@jwoertink)
|
2016-11-05 18:02:45 +00:00
|
|
|
- Give proper name to `Radix::VERSION` spec when running in verbose mode.
|
2016-11-05 18:24:27 +00:00
|
|
|
- Ensure code samples in docs can be executed.
|
2016-07-29 16:27:51 +00:00
|
|
|
|
|
|
|
## [0.3.1] - 2016-07-29
|
2016-05-16 23:37:41 +00:00
|
|
|
### Added
|
|
|
|
- Introduce `Radix::VERSION` so library version can be used at runtime.
|
2016-04-16 20:19:29 +00:00
|
|
|
|
|
|
|
## [0.3.0] - 2016-04-16
|
2016-04-14 23:46:12 +00:00
|
|
|
### Fixed
|
|
|
|
- Improve forward compatibility with newer versions of the compiler by adding
|
|
|
|
missing types to solve type inference errors.
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- `Radix::Tree` now requires the usage of a type which will be used as node's
|
|
|
|
payload. See [README](README.md) for details.
|
|
|
|
|
2016-03-15 23:52:58 +00:00
|
|
|
## [0.2.1] - 2016-03-15
|
|
|
|
### Fixed
|
|
|
|
- Correct `Result#key` incorrect inferred type.
|
|
|
|
|
|
|
|
### Removed
|
|
|
|
- Attempt to use two named parameters at the same level will raise
|
|
|
|
`Radix::Tree::SharedKeyError`
|
|
|
|
|
|
|
|
## [0.2.0] - 2016-03-15 [YANKED]
|
2016-03-10 23:49:52 +00:00
|
|
|
### Removed
|
|
|
|
- Attempt to use two named parameters at the same level will raise
|
|
|
|
`Radix::Tree::SharedKeyError`
|
|
|
|
|
2016-03-10 23:18:59 +00:00
|
|
|
## [0.1.2] - 2016-03-10
|
Correctly split named parameters on tree insert
Our Radix implementation was literally considering every single
character as candidate for splitting, which caused keys that
contained named parameters markers (`:foo`) to be broken across
nodes:
tree = Radix::Tree.new
tree.add "/", :root
tree.add "/:post", :post
tree.add "/:category/:post", :category_post
# /
# :
# post
# category/:post
This caused incorrect behavior when performing lookup (`Tree#find`)
and failing to detect and map the key name, even when the value
was properly captured:
result = tree.find "/example"
pp result.found? # => false
This change corrects the issue by identifying named parameter marker
and once detected, consider everything until a separator or the end
of the supplied string is reached to be a unique key:
tree = Radix::Tree.new
tree.add "/", :root
tree.add "/:post", :post
tree.add "/:category/:post", :category_post
# /
# :category/:post
# :post
However, due how Radix tree is structured, two named parameters at the
same level might result in problems during lookup phase:
tree = Radix::Tree.new
tree.add "/", :root
tree.add "/:post", :post
tree.add "/:category/:post", :category_post
# /
# :category/:post
# :post
tree.root.sort!
# /
# :post
# :category/:post
result = tree.find "/example"
pp result.found? # => false
pp result.params # => {"post" => "example"}
result = tree.find "/news/first-post"
pp result.found? # => false
pp result.params # => {"post" => "news"}
Causing lookup to fail and values be stored under incorrect keys
for the parameters.
Because of this, a deprecation warning will be shown to allow
users adjust and correct their code prior fully removing it and
raise error (you know, semantic versioning and all that jazz).
This fixes #5 and closes #4
2016-03-10 12:55:10 +00:00
|
|
|
### Fixed
|
|
|
|
- No longer split named parameters that share same level (@alsm)
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
- Attempt to use two named parameters at same level will display a
|
|
|
|
deprecation warning. Future versions will raise `Radix::Tree::SharedKeyError`
|
2016-02-29 15:08:48 +00:00
|
|
|
|
2016-02-29 15:11:12 +00:00
|
|
|
## [0.1.1] - 2016-02-29
|
2016-02-29 15:08:48 +00:00
|
|
|
### Fixed
|
|
|
|
- Fix named parameter key names extraction.
|
|
|
|
|
|
|
|
## [0.1.0] - 2016-01-24
|
|
|
|
### Added
|
|
|
|
- Initial release based on code extracted from Beryl.
|
|
|
|
|
2021-03-23 12:15:56 +00:00
|
|
|
[Unreleased]: https://github.com/luislavena/radix/compare/v0.4.1...HEAD
|
|
|
|
[0.4.1]: https://github.com/luislavena/radix/compare/v0.4.0...v0.4.1
|
2021-01-31 03:01:06 +00:00
|
|
|
[0.4.0]: https://github.com/luislavena/radix/compare/v0.3.9...v0.4.0
|
2019-01-02 18:02:51 +00:00
|
|
|
[0.3.9]: https://github.com/luislavena/radix/compare/v0.3.8...v0.3.9
|
2017-03-12 16:02:56 +00:00
|
|
|
[0.3.8]: https://github.com/luislavena/radix/compare/v0.3.7...v0.3.8
|
2017-02-04 16:00:14 +00:00
|
|
|
[0.3.7]: https://github.com/luislavena/radix/compare/v0.3.6...v0.3.7
|
2017-01-18 15:29:43 +00:00
|
|
|
[0.3.6]: https://github.com/luislavena/radix/compare/v0.3.5...v0.3.6
|
2016-11-25 00:04:15 +00:00
|
|
|
[0.3.5]: https://github.com/luislavena/radix/compare/v0.3.4...v0.3.5
|
2016-11-12 18:47:10 +00:00
|
|
|
[0.3.4]: https://github.com/luislavena/radix/compare/v0.3.3...v0.3.4
|
2016-11-12 16:58:42 +00:00
|
|
|
[0.3.3]: https://github.com/luislavena/radix/compare/v0.3.2...v0.3.3
|
2016-11-05 18:32:44 +00:00
|
|
|
[0.3.2]: https://github.com/luislavena/radix/compare/v0.3.1...v0.3.2
|
2016-07-29 16:27:51 +00:00
|
|
|
[0.3.1]: https://github.com/luislavena/radix/compare/v0.3.0...v0.3.1
|
2016-04-16 20:19:29 +00:00
|
|
|
[0.3.0]: https://github.com/luislavena/radix/compare/v0.2.1...v0.3.0
|
2016-03-15 23:52:58 +00:00
|
|
|
[0.2.1]: https://github.com/luislavena/radix/compare/v0.2.0...v0.2.1
|
2016-03-15 23:39:35 +00:00
|
|
|
[0.2.0]: https://github.com/luislavena/radix/compare/v0.1.2...v0.2.0
|
2016-03-10 23:18:59 +00:00
|
|
|
[0.1.2]: https://github.com/luislavena/radix/compare/v0.1.1...v0.1.2
|
2016-02-29 15:11:12 +00:00
|
|
|
[0.1.1]: https://github.com/luislavena/radix/compare/v0.1.0...v0.1.1
|