lib/validators/min.ex

defmodule Veli.Validators.Min do
  @moduledoc """
  Min validator.
  
  ## Example
  
      rule = [min: 5]
      Veli.valid("valid length", rule)
      Veli.valid(1, rule) # invalid
  """

  @spec valid?(any, number) :: boolean
  def valid?(value, rule) when is_binary(value) do
    String.length(value) >= rule
  end

  def valid?(value, rule) when is_integer(value) or is_float(value) do
    value >= rule
  end

  def valid?(_value, _rule) do
    false
  end
end