summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Text/Xslate/Syntax/Handlebars.pm2
-rw-r--r--t/expressions.t20
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/Text/Xslate/Syntax/Handlebars.pm b/lib/Text/Xslate/Syntax/Handlebars.pm
index 4b88f4f..ba41940 100644
--- a/lib/Text/Xslate/Syntax/Handlebars.pm
+++ b/lib/Text/Xslate/Syntax/Handlebars.pm
@@ -19,7 +19,7 @@ my $OPERATOR_TOKEN = sprintf(
join('|', map{ quotemeta } qw(..))
);
-sub _build_identity_pattern { qr/[A-Za-z_][A-Za-z0-9_?]*/ }
+sub _build_identity_pattern { qr/[A-Za-z_][A-Za-z0-9_?-]*/ }
sub _build_comment_pattern { qr/\![^;]*/ }
sub _build_line_start { undef }
diff --git a/t/expressions.t b/t/expressions.t
index 0026dbe..8f48a5d 100644
--- a/t/expressions.t
+++ b/t/expressions.t
@@ -123,4 +123,24 @@ render_ok(
"nested current context"
);
+render_ok(
+ '{{foo-bar}}',
+ {
+ 'foo-bar' => "FOOBAR",
+ },
+ 'FOOBAR',
+ "- is a valid character"
+);
+
+render_ok(
+ '{{foo.foo-bar}}',
+ {
+ foo => {
+ 'foo-bar' => "FOOBAR",
+ },
+ },
+ 'FOOBAR',
+ "- is a valid character"
+);
+
done_testing;