Extract function to get the source file of a module
This commit is contained in:
@@ -1,14 +1,12 @@
|
|||||||
defmodule Display do
|
defmodule Display do
|
||||||
alias IO.ANSI
|
alias IO.ANSI
|
||||||
|
@current_dir File.cwd!
|
||||||
|
|
||||||
def show_failure(%{expr: expr}, module, name) do
|
def show_failure(%{expr: expr}, module, name) do
|
||||||
source = module.__info__(:compile)
|
|
||||||
|> Dict.get(:source)
|
|
||||||
|> Path.relative_to(File.cwd!)
|
|
||||||
IO.puts("")
|
IO.puts("")
|
||||||
IO.puts("Now meditate upon #{display_module(module)}")
|
IO.puts("Now meditate upon #{display_module(module)}")
|
||||||
IO.puts("---------------------------------------")
|
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(display_koan(name))
|
||||||
IO.puts(format_red(Macro.to_string(expr)))
|
IO.puts(format_red(Macro.to_string(expr)))
|
||||||
end
|
end
|
||||||
@@ -26,6 +24,12 @@ defmodule Display do
|
|||||||
line
|
line
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp source_file(module) do
|
||||||
|
module.__info__(:compile)
|
||||||
|
|> Dict.get(:source)
|
||||||
|
|> Path.relative_to(@current_dir)
|
||||||
|
end
|
||||||
|
|
||||||
defp format_red(str) do
|
defp format_red(str) do
|
||||||
Enum.join([ANSI.red, str, ANSI.reset], "")
|
Enum.join([ANSI.red, str, ANSI.reset], "")
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user