Packages
honeybadger
0.3.1
0.28.0
0.27.0
0.26.0
0.25.0
0.24.1
0.24.0
0.23.0
0.22.1
0.22.0
0.21.0
0.20.0
0.19.0
0.18.1
0.18.0
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.0
0.14.1
0.14.0
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.7.0-beta
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
Elixir client, Plug and error_logger for integrating with the Honeybadger.io exception tracker"
Current section
Files
Jump to
Current section
Files
lib/honeybadger/backtrace.ex
defmodule Honeybadger.Backtrace do
def from_stacktrace(stacktrace) do
Enum.map stacktrace, &format_line/1
end
defp format_line({mod, fun, args, []}) do
format_line({mod, fun, args, [file: [], line: nil]})
end
defp format_line({mod, fun, _args, [file: file, line: line]}) do
%{file: file |> convert_string, method: fun |> convert_string, number:
line, context: get_context(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(:honeybadger, :app)
end
defp get_context(app, app) when app != nil, do: "app"
defp get_context(_app1, _app2), do: "all"
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