class Trackets::Client

Attributes

additional_info[RW]
env[R]
exception[R]

Public Class Methods

new(exception, env, additional_info) click to toggle source
# File lib/trackets/client.rb, line 23
def initialize(exception, env, additional_info)
  @exception = exception
  @env = env
  @additional_info = additional_info
end
notify(exception, env, additional_info = {}) click to toggle source
# File lib/trackets/client.rb, line 14
def notify(exception, env, additional_info = {})
  new(exception, env, additional_info).send
end

Public Instance Methods

backtrace() click to toggle source
# File lib/trackets/client.rb, line 29
def backtrace
  @backtrace ||= Backtrace.new(exception.backtrace)
end
config() click to toggle source
# File lib/trackets/client.rb, line 56
def config
  Trackets.configuration
end
params() click to toggle source
# File lib/trackets/client.rb, line 33
def params
  @params ||= env ? Params.new(env) : NullEnv.new
end
payload() click to toggle source
# File lib/trackets/client.rb, line 41
def payload
  {
    type:             "ruby",
    message:          exception.message,
    class_name:       exception.class.to_s,
    stacktrace:       backtrace.parse.join("\n"),
    env:              rack_env_sanitizer.filtered,
    environment_name: config.environment_name,
    project_root:     config.project_root,
    framework:        config.framework,
    params:           params.filtered,
    additional_info:  additional_info
  }
end
rack_env_sanitizer() click to toggle source
# File lib/trackets/client.rb, line 37
def rack_env_sanitizer
  @rack_env_sanitizer ||= env ? RackEnvSanitizer.new(env) : NullEnv.new
end
send() click to toggle source
# File lib/trackets/client.rb, line 60
def send
  self.class.post "#{config.api_url}/reports/#{config.private_api_key}", body: { error: payload }
end