Browse Source

Support filters on trans value (fixes #248).

Andreas Stenius 8 years ago
parent
commit
ea955c59e6
3 changed files with 12 additions and 1 deletions
  1. 2 0
      .gitignore
  2. 2 0
      src/erlydtl_beam_compiler.erl
  3. 8 1
      test/erlydtl_test_defs.erl

+ 2 - 0
.gitignore

@@ -15,3 +15,5 @@ deps
 /*.beam
 /*.beam
 /.settings/
 /.settings/
 /.project
 /.project
+include/yeccpre-*.hrl
+src/erlydtl.app.src-*

+ 2 - 0
src/erlydtl_beam_compiler.erl

@@ -776,6 +776,8 @@ value_ast(ValueToken, AsString, EmptyIfUndefined, TreeWalker) ->
             resolve_variable_ast(Variable, EmptyIfUndefined, TreeWalker);
             resolve_variable_ast(Variable, EmptyIfUndefined, TreeWalker);
         {'variable', _} = Variable ->
         {'variable', _} = Variable ->
             resolve_variable_ast(Variable, EmptyIfUndefined, TreeWalker);
             resolve_variable_ast(Variable, EmptyIfUndefined, TreeWalker);
+        {'trans', Value} ->
+            translated_ast(Value, TreeWalker);
         {extension, Tag} ->
         {extension, Tag} ->
             extension_ast(Tag, TreeWalker)
             extension_ast(Tag, TreeWalker)
     end.
     end.

+ 8 - 1
test/erlydtl_test_defs.erl

@@ -1434,7 +1434,14 @@ all_test_defs() ->
         <<"Hello Hans">>},
         <<"Hello Hans">>},
        {"trans value",
        {"trans value",
         <<"{{ _('foo') }}">>, [], [], [{locale, default}, {translation_fun, fun ("foo") -> "bar" end}],
         <<"{{ _('foo') }}">>, [], [], [{locale, default}, {translation_fun, fun ("foo") -> "bar" end}],
-        <<"bar">>}
+        <<"bar">>},
+       {"filtered value",
+        <<"{{ _('foo')|reverse }}">>, [], [],
+        [{locale, default},
+         {translation_fun, fun ("foo") -> "bar" end},
+         {default_libraries, [test1]},
+         {libraries, [{test1, erlydtl_lib_test1}]}],
+        <<"rab">>}
       ]},
       ]},
      {"blocktrans",
      {"blocktrans",
       [{"blocktrans default locale",
       [{"blocktrans default locale",