Skip to content

Commit

Permalink
Support utf8-binary and utf8-atom (OTP20+)
Browse files Browse the repository at this point in the history
  • Loading branch information
soranoba committed Nov 11, 2021
1 parent a154db8 commit 1137103
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 3 deletions.
28 changes: 26 additions & 2 deletions ct/bbmustache_SUITE.erl
Expand Up @@ -206,15 +206,39 @@ partial_custom_reader_ct(Config) ->
?assertEqual(File, bbmustache:compile(Template, ?debug((?config(data_conv, Config))([])),
?config2(options, Config, []) ++ [{partial_file_reader, fun(_, Key) -> Key end}])).

-ifdef(unicode_supported).
unicode_render_ct(Config) ->
Template = bbmustache:parse_file(filename:join([?config(data_dir, Config), <<"unicode.mustache">>])),
{ok, File} = file:read_file(filename:join([?config(data_dir, Config), <<"unicode.result">>])),

Data = [
Data1 = [
{"whoami", ""},
{"name", "まだない"}
],
?assertEqual(File, bbmustache:compile(Template, ?debug((?config(data_conv, Config))(Data)), ?config2(options, Config, []))).
?assertEqual(File, bbmustache:compile(Template, ?debug((?config(data_conv, Config))(Data1)), ?config2(options, Config, []))),

Data2 = [
{"whoami", <<""/utf8>>},
{"name", <<"まだない"/utf8>>}
],
?assertEqual(File, bbmustache:compile(Template, ?debug((?config(data_conv, Config))(Data2)), ?config2(options, Config, []))),

Data3 = [
{"whoami", '猫'},
{"name", 'まだない'}
],
?assertEqual(File, bbmustache:compile(Template, ?debug((?config(data_conv, Config))(Data3)), ?config2(options, Config, []))).
-else.
unicode_render_ct(Config) ->
Template = bbmustache:parse_file(filename:join([?config(data_dir, Config), <<"unicode.mustache">>])),
{ok, File} = file:read_file(filename:join([?config(data_dir, Config), <<"unicode.result">>])),

Data1 = [
{"whoami", ""},
{"name", "まだない"}
],
?assertEqual(File, bbmustache:compile(Template, ?debug((?config(data_conv, Config))(Data1)), ?config2(options, Config, []))).
-endif.

%%----------------------------------------------------------------------------------------------------------------------
%% Internal Functions
Expand Down
1 change: 1 addition & 0 deletions rebar.config
Expand Up @@ -2,6 +2,7 @@

{erl_opts, [
{platform_define, "^[0-9]+", namespaced_types},
{platform_define, "^20", unicode_supported},
warnings_as_errors,
warn_export_all,
warn_untyped_record
Expand Down
2 changes: 1 addition & 1 deletion src/bbmustache.erl
Expand Up @@ -252,7 +252,7 @@ default_value_serializer(X) when is_map(X); is_tuple(X) ->
default_value_serializer(X) when X =:= null; X =:= nil ->
[];
default_value_serializer(X) when is_atom(X) ->
list_to_binary(atom_to_list(X));
unicode:characters_to_binary(atom_to_list(X));
default_value_serializer(X) ->
X.

Expand Down

0 comments on commit 1137103

Please sign in to comment.