Current section

Files

Jump to
elibphonenumber src elibphone_utils.erl
Raw

src/elibphone_utils.erl

-module(elibphone_utils).
-include("libphonenumber.hrl").
-define(PLUS_SIGN_DIGIT, 43).
-export([
get_env/2,
get_priv_path/1,
to_number_object/1,
trim_plus_sign/1,
append_plus_sign/1
]).
get_env(Attr, Default) ->
case application:get_env(elibphonenumber, Attr) of
{ok, Value} ->
Value;
_ ->
Default
end.
get_priv_path(File) ->
case code:priv_dir(elibphonenumber) of
{error, bad_name} ->
Ebin = filename:dirname(code:which(?MODULE)),
filename:join([filename:dirname(Ebin), "priv", File]);
Dir ->
filename:join(Dir, File)
end.
to_number_object(#phonenumber{} = N) ->
{ok, N};
to_number_object(NumberBin) when is_binary(NumberBin) ->
case phonenumber_util:parse(append_plus_sign(NumberBin), <<"ZZ">>) of
{error, _} = R ->
R;
Number ->
{ok, Number}
end.
trim_plus_sign(P) when is_binary(P) ->
case binary:first(P) of
?PLUS_SIGN_DIGIT ->
<<_:1/binary, Value/binary>> = P,
Value;
_ ->
P
end.
append_plus_sign(P) when is_binary(P) ->
case binary:first(P) of
?PLUS_SIGN_DIGIT ->
P;
_ ->
<<"+", P/binary>>
end.