Packages

Lib for elixir

Current section

Files

Jump to
gulib lib gulib.ex
Raw

lib/gulib.ex

defmodule Gulib do
@moduledoc """
Documentation for Gulib.
"""
def get(map_or_list, key), do: get(map_or_list, key, nil)
def get(map, key, default) when is_map(map), do: Map.get(map, key, default)
def get(list, key, default) when is_list(list), do: Keyword.get(list, key, default)
def get(nil, _key, default), do: default
#### Begin Core #############################
defdelegate blank?(value), to: Gulib.String, as: :blank?
defdelegate present?(value), to: Gulib.String, as: :present?
defdelegate to_atom(value), to: Gulib.Atom, as: :parse
defdelegate to_s(value), to: Gulib.String, as: :parse
defdelegate to_i(value), to: Gulib.Integer, as: :parse
defdelegate to_f(value), to: Gulib.Float, as: :parse
defdelegate to_boolean(value), to: Gulib.Boolean, as: :parse
defdelegate html_escape(value), to: Gulib.String.HTML, as: :escape
defdelegate html_unescape(value), to: Gulib.String.HTML, as: :unescape
#### Begin Logger ############################
defdelegate log_debug(info \\ nil, opts \\ []), to: Gulib.Logger
defdelegate log_info(info \\ nil, opts \\ []), to: Gulib.Logger
defdelegate log_warn(info \\ nil, opts \\ []), to: Gulib.Logger
defdelegate log_error(info \\ nil, opts \\ []), to: Gulib.Logger
defdelegate log_inspect(info \\ nil, opts \\ []), to: Gulib.Logger
def log(info \\ nil, opts \\ []) do
case Logger.level do
:debug -> log_debug(info, opts)
:info -> log_info(info, opts)
:warn -> log_warn(info, opts)
:error -> log_error(info, opts)
_ -> log_debug(info, opts)
end
end
#### Begin List #############################
defdelegate sample(list), to: Gulib.List, as: :sample
defdelegate sample(list, count), to: Gulib.List, as: :sample
defdelegate compact(list \\ []), to: Gulib.List, as: :compact
end