diff --git a/src/routing_tree.erl b/src/routing_tree.erl index 59dd75e..232d015 100644 --- a/src/routing_tree.erl +++ b/src/routing_tree.erl @@ -488,6 +488,12 @@ wildcard_binary_lookup_test() -> Expected = {ok, #{}, "ONE", [<<"is">>, <<"amazing">>]}, ?assertEqual(Expected, C). +dash_in_path_test() -> + A = new(#{convert_to_binary => true}), + B = insert('_', "/my-test-route", "GET", "ONE", A), + C = lookup(<<"My host">>, <<"/my-test-route">>, "GET", B), + Expected = {ok, #{}, "ONE"}, + ?assertEqual(Expected, C). diff --git a/src/routing_tree_parser.yrl b/src/routing_tree_parser.yrl index a2149a9..543153a 100644 --- a/src/routing_tree_parser.yrl +++ b/src/routing_tree_parser.yrl @@ -1,8 +1,8 @@ -Nonterminals url_path path_segment query basic_element. +Nonterminals path_segment query basic_element. Terminals 'divider' 'binding' 'wildcard' 'segment' 'query_start' 'ampersand' 'equals'. -Rootsymbol url_path. +Rootsymbol path_segment. basic_element -> @@ -26,11 +26,4 @@ path_segment -> path_segment -> 'divider' basic_element path_segment: ['$2'|'$3']. -%% Remove trailing slash -url_path -> - path_segment 'divider': '$1'. -url_path -> - path_segment: '$1'. - - Erlang code.