Packages

Django Template Language for Erlang

Current section

Files

Jump to
erlydtl2 src erlydtl_contrib_humanize.erl
Raw

src/erlydtl_contrib_humanize.erl

-module(erlydtl_contrib_humanize).
-export([intcomma/1]).
intcomma(Value) when is_integer(Value) ->
intcomma(integer_to_list(Value));
intcomma(Value) ->
ValueBin = iolist_to_binary(Value),
intcomma(ValueBin, size(ValueBin) rem 3, <<>>).
intcomma(<<>>, _, Acc) ->
Acc;
intcomma(<< C, Rest/bits >>, 0, <<>>) ->
intcomma(Rest, 2, << C >>);
intcomma(<< C, Rest/bits >>, 0, Acc) ->
intcomma(Rest, 2, << Acc/binary, $,, C >>);
intcomma(<< C, Rest/bits >>, N, Acc) ->
intcomma(Rest, N - 1, << Acc/binary, C >>).