Current section

Files

Jump to
tehama_client_ex lib tehama_client objects object.ex
Raw

lib/tehama_client/objects/object.ex

defmodule TehamaClient.Object do
@spec parse_i(any, any) :: integer()
def parse_i(v, default \\ -1)
def parse_i(nil, default), do: default
def parse_i(v, default) when is_binary(v) do
with {i, _} <- Integer.parse(v) do
i
else
_ -> default
end
end
def parse_i(v, _default) when is_number(v) do
round(v)
end
def parse_i(_, default) do
default
end
@spec parse_f(any, any) :: float()
def parse_f(v, default \\ -1.0)
def parse_f(nil, default), do: default
def parse_f(v, default) when is_binary(v) do
with {f, _} <- Float.parse(v) do
f
else
_ -> default
end
end
def parse_f(v, _default) when is_number(v) do
v
end
def parse_f(_, default) do
default
end
end