class Errordite::Serializer
Constants
- SPECIAL_CONTEXT_ATTRIBUTES
Attributes
context[R]
exception[R]
Public Class Methods
new(exception, context = {})
click to toggle source
# File lib/errordite/serializer.rb, line 9 def initialize(exception, context = {}) @exception = exception @context = context end
Public Instance Methods
as_json()
click to toggle source
# File lib/errordite/serializer.rb, line 14 def as_json special_attributes.merge( "Token" => Errordite.api_token, "TimestampUtc" => Time.now.strftime("%Y-%m-%d %H:%M:%S"), "ExceptionInfo" => { "Source" => source, "Message" => exception.message, "MethodName" => method_name, "ExceptionType" => exception.class.name, "StackTrace" => stack_trace, "Data" => exception_data } ) end
to_json()
click to toggle source
# File lib/errordite/serializer.rb, line 29 def to_json JSON.dump(as_json) end
Private Instance Methods
exception_data()
click to toggle source
# File lib/errordite/serializer.rb, line 39 def exception_data Hash[context.reject {|k, v| SPECIAL_CONTEXT_ATTRIBUTES.include?(k) }] end
method_name()
click to toggle source
# File lib/errordite/serializer.rb, line 55 def method_name split_first_line && split_first_line[3] end
source()
click to toggle source
# File lib/errordite/serializer.rb, line 51 def source split_first_line && split_first_line[1] end
special_attributes()
click to toggle source
# File lib/errordite/serializer.rb, line 35 def special_attributes Hash[context.select {|k, v| SPECIAL_CONTEXT_ATTRIBUTES.include?(k) }] end
split_first_line()
click to toggle source
# File lib/errordite/serializer.rb, line 59 def split_first_line @split_first_line ||= exception.backtrace && exception.backtrace[0] && exception.backtrace[0].match(/^(.*?)(?:\:(\d+))(?:\:in `(.*)')?$/) end
stack_trace()
click to toggle source
# File lib/errordite/serializer.rb, line 47 def stack_trace exception.backtrace && exception.backtrace.join("\n") end
timestamp()
click to toggle source
# File lib/errordite/serializer.rb, line 43 def timestamp Time.now.strftime("%Y-%m-%d %H:%M:%S") end