Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I took the challenge of getting the router to work and here it is fully functional \o/
It's basically the ternary search tree that @sam started apart for 2 scenarios:
Habor::Router::WilcardRoute
behavior (something like a multiway tree i think) which will try to perform exact matches and fail back to wildcard routes if it fails. Here's what happens under the hood whenposts/:id/comments
andposts/:id/tags
get added afterposts/archive/:author
has been parsed:I'm also planning to give a shot at optimizing the routing tree by making it balanced using same idea from AVL trees, I'm just not sure whether it should be at insertion or boot time. What do you guys think?
BTW, this should close #22 as well ;-)