Packages
raygun
0.1.3
0.4.0
0.3.2
0.3.1
0.3.0
0.2.0
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.45
0.0.44
0.0.43
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.29
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Send errors in your application to Raygun. Raygun captures all your application errors in one place. It can be used as a Plug, via Logger and/or programmatically.
Current section
Files
Jump to
Current section
Files
lib/raygun/util.ex
defmodule Raygun.Util do
@moduledoc """
This module contains utility functions for formatting particular pieces
of stacktrace data into strings.
"""
@doc """
Headers are a list of Tuples. Convert them to a keyword list.
"""
def format_headers(headers) do
headers
|> Keyword.new( fn {x,y} -> {String.to_atom(x), y} end )
|> Enum.into(%{})
end
@doc """
Given a function name (atom) and arity (number), return a string in the form
func_name/2.
"""
def function_and_arity(function, list) when is_list(list) do
function_and_arity(function, length(list))
end
def function_and_arity(function,arity) do
"#{Atom.to_string(function)}/#{arity}"
end
@doc """
Return the module name as a string (binary).
"""
def mod_for(module) when is_atom(module) do
Atom.to_string(module)
end
def mod_for(module) when is_binary(module) do
module
end
@doc """
Given stacktrace information, get the line number.
"""
def line_from(file: _file, line: line) do
line
end
@doc """
Given stacktrace information, get the file name.
"""
def file_from(file: file, line: _line) do
file |> List.to_string
end
@doc """
Like Application.get_env only for get_key function.
"""
def get_key(app, key, default \\ nil) do
case :application.get_key(app,key) do
{:ok, val} -> val
{^key, val} -> val
_ -> default
end
end
@doc """
So in a release this seems to return {:key, value} instead of {:ok, value}
for some reason. So we accept that form as well....
"""
def get_env(app, key, default \\ nil) do
case Application.get_env(app,key,default) do
{^key, value} -> value
:undefined -> default
value -> value
end
end
end