50 lines
1018 B
Elixir
50 lines
1018 B
Elixir
defmodule Display do
|
|
alias IO.ANSI
|
|
alias Display.ProgressBar
|
|
alias Display.Intro
|
|
alias Display.Failure
|
|
alias Display.Notifications
|
|
|
|
def invalid_koan(koan, modules) do
|
|
Notifications.invalid_koan(koan, modules)
|
|
|> IO.puts
|
|
end
|
|
|
|
def show_failure(failure, module, name) do
|
|
format(failure, module, name)
|
|
|> IO.puts
|
|
end
|
|
|
|
def format(failure, module, name) do
|
|
"""
|
|
#{Intro.intro(module, Tracker.visited)}
|
|
Now meditate upon #{format_module(module)}
|
|
#{ProgressBar.progress_bar(Tracker.summarize)}
|
|
----------------------------------------
|
|
#{name}
|
|
#{Failure.format_failure(failure)}
|
|
"""
|
|
end
|
|
|
|
def show_compile_error(error) do
|
|
Failure.show_compile_error(error)
|
|
|> IO.puts
|
|
end
|
|
|
|
def congratulate do
|
|
Notifications.congratulate
|
|
|> IO.puts
|
|
end
|
|
|
|
def clear_screen do
|
|
if Options.clear_screen? do
|
|
IO.puts(ANSI.clear)
|
|
IO.puts(ANSI.home)
|
|
end
|
|
end
|
|
|
|
defp format_module(module) do
|
|
Module.split(module) |> List.last
|
|
end
|
|
end
|