defmodule Gulib.String do def parse(value \\ nil), do: "#{value}" #### Begin blank? ###################### def blank?(value) when is_list(value) do value == [] end def blank?(value) when is_map(value) do value == %{} end def blank?(""), do: true def blank?(nil), do: true def blank?(value) when is_tuple(value) do value == {} end def blank?(value) when is_binary(value) or is_atom(value) do trim(value) == "" end def blank?(_), do: false #### Begin present? ##################### def present?(value), do: not blank?(value) def trim(value) do value |> parse |> String.trim end def length(value, opts \\ []) do if opts[:trim] do value |> parse |> String.trim |> String.length else value |> parse |> String.length end end end