class XRayCause
Constants
- MAX_DEPTH
Public Class Methods
new(lambda_error)
click to toggle source
# File lib/aws_lambda_ric/xray_cause.rb, line 8 def initialize(lambda_error) @cause = { working_directory: Dir.pwd, paths: Gem.paths.path, exceptions: lambda_error ? normalize(err: lambda_error) : lambda_error } end
Public Instance Methods
as_json()
click to toggle source
# File lib/aws_lambda_ric/xray_cause.rb, line 16 def as_json @as_json ||= begin JSON.dump(@cause) end end
Private Instance Methods
normalize(err:)
click to toggle source
# File lib/aws_lambda_ric/xray_cause.rb, line 24 def normalize(err:) exception = { message: err[:errorMessage], type: err[:errorType] } backtrace = err[:stackTrace] if backtrace exception[:stack] = backtrace.first(MAX_DEPTH).collect do |t| { path: t.path, line: t.lineno, label: t.label } end end [exception] end