New Features¶ ↑
-
An optimized_string_matchers plugin has been added, which contains optimized matchers for single strings. r.on_branch is an optimized version of r.on and r.is_exactly is optimized version of r.is:
plugin :optimized_string_matchers route do |r| r.on_branch "x" do # matches /x and paths starting with /x/ r.is_exactly "y" do # matches /x/y end end end
Both of these methods will work even if the strings have placeholders, but no captures will be yielded to the blocks.
-
The error_handler plugin now has access to the request’s remaining_path when handling an error. You can then compare the remaining_path to path_info to see how much of request was already routed, which can be useful when reporting errors.
Other Improvements¶ ↑
-
String matching for strings without placeholders is now 60% faster as it uses optimized string operations instead of a regexp match.
-
Symbol matching is now 60% faster as it uses optimized string operations instead of a regexp match.
Backwards Compatibility¶ ↑
-
The match methods no longer automatically reset the remaining_path via ensure. This means that using non-local jumps out of the code such as begin/rescue and throw/catch will not reset remaining_path automatically. Users that want to reset remaining path in such cases should use their own ensure blocks.