Current section

Files

Jump to
bugsnex lib bugsnex stacktrace.ex
Raw

lib/bugsnex/stacktrace.ex

defmodule Bugsnex.Stacktrace do
def format(stacktrace) do
Enum.map(stacktrace, &format_line/1)
end
defp format_line({mod, fun, arity, []}) do
format_line({mod, fun, arity, [file: [], line: nil]})
end
defp format_line({mod, fun, arity, [file: file, line: line]}) do
%{
file: convert_string(file),
method: Exception.format_mfa(mod, fun, arity),
lineNumber: line,
inProject: otp_app() == get_app(mod)
}
end
defp get_app(module) do
case :application.get_application(module) do
{:ok, app} -> app
:undefined -> nil
end
end
defp otp_app do
Application.get_env(:bugsnex, :otp_app)
end
defp convert_string(""), do: nil
defp convert_string(string) when is_binary(string), do: string
defp convert_string(obj), do: to_string(obj) |> convert_string
end