Skip to content

Commit

Permalink
Merge pull request #635 from aherranz/recovering_boss_lang_extract_st…
Browse files Browse the repository at this point in the history
…rings_on_master

merged, thanks
  • Loading branch information
danikp committed Feb 25, 2016
2 parents 8f31f23 + 45e475a commit 932e33a
Showing 1 changed file with 2 additions and 31 deletions.
33 changes: 2 additions & 31 deletions src/boss/boss_lang.erl
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ extract_view_strings(App) ->
case boss_env:is_developing_app(App) of
true ->
ViewFiles = boss_files:view_file_list(),
lists:foldl(fun(File, Acc) -> Acc ++ process_view_file(File) ++ process_view_file_blocks(File) end,
lists:foldl(fun(File, Acc) -> Acc ++ process_view_file(File) end,
[], ViewFiles);
false ->
lists:foldl(
Expand Down Expand Up @@ -202,37 +202,8 @@ extract_module_strings(App) when is_atom(App)->
[],
ModulesFiles).

process_view_file_blocks(ViewFile) ->
{ok, BlockStrings} = blocktrans_extractor:extract(ViewFile),
BlockStrings.

process_view_file(ViewFile) ->
{ok, Contents} = file:read_file(ViewFile),
{ok, Tokens} = erlydtl_scanner:scan(binary_to_list(Contents)),
process_view_file_tokens(Tokens, []).

process_view_file_tokens([], Acc) ->
Acc;
process_view_file_tokens([{trans_keyword, _, _}, {string_literal, _, String}|Rest], Acc) ->
process_view_file_tokens(Rest,
[unescape_string_literal(string:strip(String, both, $"))|Acc]);
process_view_file_tokens([{'_', _}, {'(', _}, {string_literal, _, String}, {')', _}|Rest], Acc) ->
process_view_file_tokens(Rest,
[unescape_string_literal(string:strip(String, both, $"))|Acc]);
process_view_file_tokens([_|Rest], Acc) ->
process_view_file_tokens(Rest, Acc).

unescape_string_literal(String) ->
unescape_string_literal(string:strip(String, both, 34), [], noslash).

unescape_string_literal([], Acc, noslash) ->
lists:reverse(Acc);
unescape_string_literal([$\\ | Rest], Acc, noslash) ->
unescape_string_literal(Rest, Acc, slash);
unescape_string_literal([C | Rest], Acc, noslash) ->
unescape_string_literal(Rest, [C | Acc], noslash);
unescape_string_literal([C | Rest], Acc, slash) ->
unescape_string_literal(Rest, [C | Acc], noslash).
[erlang:element(2,Phrase) || Phrase <- sources_parser:parse_file(ViewFile)].

escape_quotes(String) ->
escape_quotes(String, []).
Expand Down

0 comments on commit 932e33a

Please sign in to comment.