From 34cb4745693ec75c3c399d3b7f2efa3a2d93b7b9 Mon Sep 17 00:00:00 2001 From: Uku Taht Date: Thu, 17 Dec 2015 01:52:34 +0000 Subject: [PATCH] Extract function to get the source file of a module --- lib/display.ex | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/display.ex b/lib/display.ex index 425551b..8ed02b9 100644 --- a/lib/display.ex +++ b/lib/display.ex @@ -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