Ravel v0.0.3 Ravel
Ravel is validation library for elixir. Mainly created for learning purposes.
Usage
Maps and named lists can be used as containers for data that must be validated.
iex> data = [field: "value"]
iex> rules = {:fields_set, [field: {:rules, [%Ravel.Rules.Required{}]}]}
iex> Ravel.validate data, rules
:ok
Summary
Functions
Is used to validate passed data with passed rules
Functions
Is used to validate passed data with passed rules.
iex> Ravel.validate [field_name: nil], {:fields_set, [field_name: {:rules, [%Ravel.Rules.Required{}]}]}
[field_name: [%Ravel.Rules.Required{}]]
iex> Ravel.validate [field_name: "value"], {:fields_set, [field_name: {:rules, [%Ravel.Rules.Required{}]}]}
:ok
iex> Ravel.validate [field_name: "value"], {:fields_set, [field_name: {:rules, [%Ravel.Rules.Required{}, %Ravel.Rules.Minimum{min: 5}]}]}
:ok
iex> Ravel.validate [field_name: "value"], {:fields_set, [field_name: {:rules, [%Ravel.Rules.Required{}, %Ravel.Rules.Minimum{min: 10}]}]}
[field_name: [%Ravel.Rules.Minimum{min: 10}]]
iex> Ravel.validate [field_name: nil, another_field: nil], {:fields_set, [field_name: {:rules, [%Ravel.Rules.Required{}]}, another_field: {:rules, [%Ravel.Rules.Required{}]}]}
[field_name: [%Ravel.Rules.Required{}], another_field: [%Ravel.Rules.Required{}]]
iex> Ravel.validate [field_name: [sub_field: nil]], {:fields_set, [field_name: {:rules, {:fields_set, [sub_field: {:rules, [%Ravel.Rules.Required{}]}]}}]}
[field_name: [sub_field: [%Ravel.Rules.Required{}]]]
iex> Ravel.validate [field_name: [sub_field: "value"]], {:fields_set, [field_name: {:rules, {:fields_set, [sub_field: {:rules, [%Ravel.Rules.Required{}]}]}}]}
:ok