Packages

Lib for elixir

Current section

Files

Jump to
gulib lib validations numericality.ex
Raw

lib/validations/numericality.ex

defmodule Gulib.Validations.Numericality do
def validate(value, options \\ []) do
Gulib.Validate.unless_skipping(value, options) do
str = String.to_charlist("#{value}")
valid_result =
case :string.to_integer(str) do
{:error, :no_integer} -> :number_expected
{_value, []} -> :ok
{_value, _} ->
case :string.to_float(str) do
{:error, _} -> :rest_not_allowed
{_value_f, []} -> :ok
{_value_f, _} -> :rest_not_allowed
end
end
case valid_result do
:ok -> :ok
_ -> {:fail, :not_number, Gulib.Translator.dgettext("validate", "Must be a number")}
end
end
end
end