Packages

Debugging tool. A wrapper around IO.inspect that provides some enhancements

Current section

Files

Jump to
clouseau lib switches.ex
Raw

lib/switches.ex

defmodule Clouseau.Switches do
@valid_switches [
file: :boolean,
full_path: :boolean,
module: :boolean,
line: :boolean,
text: :boolean,
border: :boolean
]
@aliases [
f: :file,
m: :module,
l: :line,
t: :text,
b: :border
]
@default_switches [
file: true,
full_path: false,
module: true,
line: true,
text: true,
border: false
]
@no_switches Enum.map(@default_switches, fn {key, _} -> {key, false} end)
def valid_switches, do: @valid_switches
def aliases, do: @aliases
def default_switches do
merge(no_switches(),
Application.get_env(:clouseau, :default_switches, @default_switches))
end
def no_switches, do: @no_switches
def apply(switches) do
merge(default_switches(), switches)
end
defp merge(current_switches, new_switches)
when is_list(current_switches) and is_list(new_switches) do
Keyword.merge(current_switches, new_switches)
end
end