From 5b536c6760159ee45036bc27de876c146a449b91 Mon Sep 17 00:00:00 2001 From: pmeinhardt Date: Sun, 11 Feb 2018 23:47:24 +0100 Subject: [PATCH 1/2] Refactor verbosity checks --- lib/ui.ex | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/lib/ui.ex b/lib/ui.ex index 87fb083..aa50a05 100644 --- a/lib/ui.ex +++ b/lib/ui.ex @@ -4,6 +4,8 @@ defmodule Bootleg.UI do a configured verbosity level. """ + @verbosities [:error, :warning, :info, :debug] + @doc """ Simple wrapper around IO.puts """ @@ -67,24 +69,15 @@ defmodule Bootleg.UI do validate_verbosity setting || Application.get_env(:bootleg, :verbosity, :info) end - defp validate_verbosity(verbosity) - defp validate_verbosity(:warning), do: :warning - defp validate_verbosity(:debug), do: :debug - defp validate_verbosity(:silent), do: :silent + defp validate_verbosity(verbosity) when verbosity in @verbosities, do: verbosity defp validate_verbosity(_), do: :info - defp verbosity_includes(setting, level) - defp verbosity_includes(:info, :info), do: true - defp verbosity_includes(:info, :warning), do: true - defp verbosity_includes(:info, :error), do: true - defp verbosity_includes(:warning, :warning), do: true - defp verbosity_includes(:warning, :error), do: true - defp verbosity_includes(:error, :error), do: true - defp verbosity_includes(:debug, :info), do: true - defp verbosity_includes(:debug, :warning), do: true - defp verbosity_includes(:debug, :debug), do: true - defp verbosity_includes(:debug, :error), do: true - defp verbosity_includes(_, _), do: false + defp verbosity_includes(setting, _) when setting not in @verbosities, do: false + defp verbosity_includes(_, level) when level not in @verbosities, do: false + defp verbosity_includes(setting, level) do + index = fn value -> Enum.find_index(@verbosities, &(&1 == value)) end + index.(setting) >= index.(level) + end ### SSH formatting functions From 6a3a4fe7076f7ecb69edd871f5ca3683c891df9d Mon Sep 17 00:00:00 2001 From: pmeinhardt Date: Mon, 12 Feb 2018 00:02:54 +0100 Subject: [PATCH 2/2] Replace `x not in y` with `not(x in y)` --- lib/ui.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ui.ex b/lib/ui.ex index aa50a05..ca2b7cc 100644 --- a/lib/ui.ex +++ b/lib/ui.ex @@ -72,8 +72,8 @@ defmodule Bootleg.UI do defp validate_verbosity(verbosity) when verbosity in @verbosities, do: verbosity defp validate_verbosity(_), do: :info - defp verbosity_includes(setting, _) when setting not in @verbosities, do: false - defp verbosity_includes(_, level) when level not in @verbosities, do: false + defp verbosity_includes(setting, _) when not(setting in @verbosities), do: false + defp verbosity_includes(_, level) when not(level in @verbosities), do: false defp verbosity_includes(setting, level) do index = fn value -> Enum.find_index(@verbosities, &(&1 == value)) end index.(setting) >= index.(level)