diff --git a/lib/display.ex b/lib/display.ex index 21ee774..004a51a 100644 --- a/lib/display.ex +++ b/lib/display.ex @@ -20,9 +20,15 @@ defmodule Display do defp name("Elixir." <> module), do: module defp name(module), do: name(Atom.to_string(module)) - def intro(module) do - show_intro(module.intro) - module + def show_failure(failure, module, name) do + intro(module, Tracker.visited) + IO.puts(format(failure, module, name)) + end + + defp intro(module, modules) do + if ! module in modules do + show_intro(module.intro) + end end defp show_intro(""), do: nil @@ -32,9 +38,6 @@ defmodule Display do |> IO.puts end - def show_failure(failure, module, name) do - IO.puts(format(failure, module, name)) - end def format(failure, module, name) do """ diff --git a/lib/runner.ex b/lib/runner.ex index 2b73429..7974c47 100644 --- a/lib/runner.ex +++ b/lib/runner.ex @@ -40,15 +40,9 @@ defmodule Runner do defp track(_, _, _), do: nil defp display({:failed, error, module, name}) do - intro(module, Tracker.summarize) Display.show_failure(error, module, name) :failed end defp display(_), do: :passed - defp intro(module, %{visited_modules: modules}) do - if ! module in modules do - Display.intro(module) - end - end end diff --git a/lib/tracker.ex b/lib/tracker.ex index c384042..ed2ac2f 100644 --- a/lib/tracker.ex +++ b/lib/tracker.ex @@ -19,6 +19,10 @@ defmodule Tracker do end) end + def visited do + summarize[:visited_modules] + end + def complete? do %{total: total, current: completed} = summarize total == completed