Extract function to get the source file of a module

This commit is contained in:
Uku Taht
2015-12-17 01:52:34 +00:00
parent f76aee3672
commit 34cb474569

View File

@@ -1,14 +1,12 @@
defmodule Display do
alias IO.ANSI
@current_dir File.cwd!
def show_failure(%{expr: expr}, module, name) do
source = module.__info__(:compile)
|> Dict.get(:source)
|> Path.relative_to(File.cwd!)
IO.puts("")
IO.puts("Now meditate upon #{display_module(module)}")
IO.puts("---------------------------------------")
IO.puts("Assertion failed in #{source}:#{line_number(expr)}")
IO.puts("Assertion failed in #{source_file(module)}:#{line_number(expr)}")
IO.puts(display_koan(name))
IO.puts(format_red(Macro.to_string(expr)))
end
@@ -26,6 +24,12 @@ defmodule Display do
line
end
defp source_file(module) do
module.__info__(:compile)
|> Dict.get(:source)
|> Path.relative_to(@current_dir)
end
defp format_red(str) do
Enum.join([ANSI.red, str, ANSI.reset], "")
end