Collect all intro printing into display

This commit is contained in:
Felipe Sere
2016-05-10 22:57:00 +01:00
parent 3d79284aab
commit 751f849585
3 changed files with 13 additions and 12 deletions

View File

@@ -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
"""

View File

@@ -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

View File

@@ -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