Sha256: fd2b25d65fe3da07a18545fe3448c71d34dd4eee21a2f981b56cef25fc62293e
Contents?: true
Size: 1.64 KB
Versions: 1
Compression:
Stored size: 1.64 KB
Contents
require "multi_json" module Bugsnag class Event attr_accessor :exception, :user_id, :app_environment, :web_environment, :meta_data def initialize(exception, user_id, env={}) self.exception = exception self.user_id = user_id self.app_environment = env[:app_environment] self.web_environment = env[:web_environment] self.meta_data = env[:meta_data] end def error_class exception.class.to_s end def message exception.message end def stacktrace(project_path=nil) return @stacktrace if @stacktrace if exception.backtrace @stacktrace = exception.backtrace.map do |trace| method = nil file, line, method_str = trace.split(":") trace_hash = { :file => file, :lineNumber => line } if method_str method_match = /in `([^']+)'/.match(method_str) method = method_match.captures.first if method_match end trace_hash[:method] = method if method trace_hash[:inProject] = true if project_path && file.match(/^#{project_path}/) trace_hash end else @stacktrace = [] end @stacktrace end def as_hash { :userId => user_id, :causes => [{ :errorClass => error_class, :message => message, :stacktrace => stacktrace }], :appEnvironment => app_environment, :webEnvironment => web_environment, :metaData => meta_data } end def as_json MultiJson.encode(as_hash) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bugsnag-1.0.0 | lib/bugsnag/event.rb |