Packages
maru
0.2.10
0.14.0-pre.1
0.13.2
0.13.1
0.13.0
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.4.1
0.4.0
0.3.1
0.3.0
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
REST-like API micro-framework for elixir inspired by grape.
Current section
Files
Jump to
Current section
Files
lib/maru/validations.ex
defmodule Maru.Validations do
defmodule Regexp do
def validate_param!(attr_name, value, option) do
value |> to_string =~ option ||
Maru.Exceptions.Validation |> raise [param: attr_name, validator: :regexp, value: value, option: option]
end
end
defmodule Values do
def validate_param!(attr_name, value, option) do
value in option ||
Maru.Exceptions.Validation |> raise [param: attr_name, validator: :values, value: value, option: option]
end
end
defmodule AllowBlank do
def validate_param!(_, _, true), do: true
def validate_param!(attr_name, value, false) do
not value in [nil, "", ''] ||
Maru.Exceptions.Validation |> raise [param: attr_name, validator: :allow_blank, value: value, option: false]
end
end
defmodule MutuallyExclusive do
def validate!(attr_names, params) do
unless Enum.count(attr_names, &(not is_nil(params[&1]))) <= 1 do
Maru.Exceptions.Validation |> raise [param: attr_names, validator: :mutually_exclusive, value: params]
end
true
end
end
defmodule ExactlyOneOf do
def validate!(attr_names, params) do
unless Enum.count(attr_names, &(not is_nil(params[&1]))) == 1 do
Maru.Exceptions.Validation |> raise [param: attr_names, validator: :exactly_one_of, value: params]
end
true
end
end
defmodule AtLeastOneOf do
def validate!(attr_names, params) do
unless Enum.count(attr_names, &(not is_nil(params[&1]))) >= 1 do
Maru.Exceptions.Validation |> raise [param: attr_names, validator: :at_least_one_of, value: params]
end
true
end
end
end