class Rookout::Processor::Namespaces::TracebackNamespace

Public Class Methods

new(backtrace, offset, depth) click to toggle source
# File lib/rookout/processor/namespaces/traceback_namespace.rb, line 10
def initialize backtrace, offset, depth
  @backtrace = backtrace
  @offset = offset
  @depth = depth
end

Public Instance Methods

dump(_log_object_errors) click to toggle source
# File lib/rookout/processor/namespaces/traceback_namespace.rb, line 20
def dump _log_object_errors
  traceback = Com::Rookout::Variant::Traceback.new

  @depth.times do |i|
    position = i + @offset
    break if position >= @backtrace.length
    frame = @backtrace[position]

    code_object = Com::Rookout::Variant::CodeObject.new filename: frame.source_location[0],
                                                        lineno: frame.source_location[1],
                                                        name: frame.eval("__method__").to_s

    traceback.locations << code_object
  end

  Com::Rookout::Variant.new variant_type: :VARIANT_TRACEBACK, traceback: traceback
end
read_key(key) click to toggle source
# File lib/rookout/processor/namespaces/traceback_namespace.rb, line 16
def read_key key
  FrameNamespace.new @backtrace[key + @offset]
end