exvalidate v0.0.1 Exvalidate.Rules.Type View Source

This validation check the type of variable. The checked types are the next:

  • :string => "name", "address", "language",
  • :list => ["name", "address", "language"],
  • :map => %{name: "Vegeta", address: "Vegeta planet"},
  • :tuple => {:name, "Vegeta"},
  • :number => 23, 2.3, 4, 0.9, -0.9, -4,
  • :integer => 23, 4, -4,
  • :float => 2.3, 0.9, -0.9.
  • :atom => :vegeta, :picolo
  • :boolean => true, false

Examples atom

iex(3)> Exvalidate.Rules.Type.validating({:type, :atom}, :Saiyajin)
{:ok, :Saiyajin}
iex(3)> Exvalidate.Rules.Type.validating({:type, :atom}, 33)
{:error, :type_value_wrong}

Examples string

iex(3)> Exvalidate.Rules.Type.validating({:type, :string}, "Saiyajin")
{:ok, "Boo"}
iex(3)> Exvalidate.Rules.Type.validating({:type, :string}, "Saiyajin")
{:error, :type_value_wrong}

Examples list

iex(3)> Exvalidate.Rules.Type.validating({:type, :list}, ["Saiyajin", "Namek"])
{:ok, ["Saiyajin", "Namek"]}
iex(3)> Exvalidate.Rules.Type.validating({:type, :list}, "Saiyajin")
{:error, :type_value_wrong}

Examples map

iex(3)> Exvalidate.Rules.Type.validating({:type, :map}, %{"Saiyajin" => "Vegetta"})
{:ok, %{"Saiyajin" => "Vegetta"}}
iex(3)> Exvalidate.Rules.Type.validating({:type, :map}, "Saiyajin")
{:error, :type_value_wrong}

Examples tuple

iex(3)> Exvalidate.Rules.Type.validating({:type, :tuple}, {"Saiyajin", "Namek"})
{:ok, {"Saiyajin", "Namek"}}
iex(3)> Exvalidate.Rules.Type.validating({:type, :tuple}, "Saiyajin")
{:error, :type_value_wrong}

Examples number

iex(3)> Exvalidate.Rules.Type.validating({:type, :number}, 3)
{:ok, 3}
iex(3)> Exvalidate.Rules.Type.validating({:type, :number}, 3.3)
{:ok, 3.3}
iex(3)> Exvalidate.Rules.Type.validating({:type, :number}, "3")
{:ok, 3}
iex(3)> Exvalidate.Rules.Type.validating({:type, :number}, "3.3")
{:ok, 3.3}
iex(3)> Exvalidate.Rules.Type.validating({:type, :number}, "Thr.ee")
{:error, :type_value_wrong}

Examples float

iex(3)> Exvalidate.Rules.Type.validating({:type, :float}, 3.3)
{:ok, 3.3}
iex(3)> Exvalidate.Rules.Type.validating({:type, :float}, "3.3")
{:ok, 3.3}
iex(3)> Exvalidate.Rules.Type.validating({:type, :float}, "Vegeta")
{:error, :type_value_wrong}

Examples integer

iex(3)> Exvalidate.Rules.Type.validating({:type, :integer}, 3)
{:ok, 3}
iex(3)> Exvalidate.Rules.Type.validating({:type, :integer}, "3")
{:ok, 3}
iex(3)> Exvalidate.Rules.Type.validating({:type, :integer}, "Vegeta")
{:error, :type_value_wrong}

Examples boolean

iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, true)
{:ok, true}
iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, false)
{:ok, false}
iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, "true")
{:ok, true}
iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, "false")
{:ok, false}
iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, "TRUE")
{:ok, true}
iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, "FALSE")
{:ok, false}
iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, "1")
{:ok, true}
iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, "0")
{:ok, false}
iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, 1)
{:ok, true}
iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, 0)
{:ok, false}
iex(3)> Exvalidate.Rules.Type.validating({:type, :boolean}, "Vegeta")
{:error, :type_value_wrong}

The :number type includes the types :float and :integer.