Class: Gruf::Errors::DebugInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/gruf/errors/debug_info.rb

Overview

Represents debugging information for an exception that occurred in a gRPC service

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(detail, stack_trace = []) ⇒ DebugInfo

Returns a new instance of DebugInfo.

Parameters:

  • detail (String)

    The detail message of the exception

  • stack_trace (Array<String>) (defaults to: [])

    The stack trace generated by the exception as an array of strings



33
34
35
36
37
38
39
40
41
# File 'lib/gruf/errors/debug_info.rb', line 33

def initialize(detail, stack_trace = [])
  @detail = detail
  @stack_trace = (stack_trace.is_a?(String) ? stack_trace.split("\n") : stack_trace)

  # Limit the size of the stack trace to reduce risk of overflowing metadata
  stack_trace_limit = Gruf.backtrace_limit.to_i
  stack_trace_limit = 10 if stack_trace_limit.negative?
  @stack_trace = @stack_trace[0..stack_trace_limit] if stack_trace_limit.positive?
end

Instance Attribute Details

#detailString (readonly)

Returns The detail message of the exception.

Returns:

  • (String)

    The detail message of the exception



25
26
27
# File 'lib/gruf/errors/debug_info.rb', line 25

def detail
  @detail
end

#stack_traceArray<String> (readonly)

Returns The stack trace generated by the exception as an array of strings.

Returns:

  • (Array<String>)

    The stack trace generated by the exception as an array of strings



27
28
29
# File 'lib/gruf/errors/debug_info.rb', line 27

def stack_trace
  @stack_trace
end

Instance Method Details

#to_hHash

Return this object marshalled into a hash

Returns:

  • (Hash)

    The debug info represented as a hash



48
49
50
51
52
53
# File 'lib/gruf/errors/debug_info.rb', line 48

def to_h
  {
    detail: detail,
    stack_trace: stack_trace
  }
end