Class: AppMap::StackPrinter
Class Method Summary collapse
Instance Method Summary collapse
- 
  
    
      #initialize  ⇒ StackPrinter 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of StackPrinter.
 - #record(event) ⇒ Object
 
Constructor Details
#initialize ⇒ StackPrinter
Returns a new instance of StackPrinter.
      114 115 116  | 
    
      # File 'lib/appmap/trace.rb', line 114 def initialize @@stacks ||= {} end  | 
  
Class Method Details
.depth ⇒ Object
      109 110 111  | 
    
      # File 'lib/appmap/trace.rb', line 109 def depth (ENV["APPMAP_STACK_DEPTH"] || 20).to_i end  | 
  
.enabled? ⇒ Boolean
      105 106 107  | 
    
      # File 'lib/appmap/trace.rb', line 105 def enabled? ENV["APPMAP_PRINT_STACKS"] == "true" end  | 
  
Instance Method Details
#record(event) ⇒ Object
      118 119 120 121 122 123 124 125 126 127 128  | 
    
      # File 'lib/appmap/trace.rb', line 118 def record(event) stack = caller.select { |line| !line.index("/lib/appmap/") }[0...StackPrinter.depth].join("\n ") stack_hash = Digest::SHA256.hexdigest(stack) return if @@stacks[stack_hash] @@stacks[stack_hash] = stack puts puts "Event: " + event.to_h.map { |k, v| ["#{k}: #{v}"] }.join(", ") puts " " + stack puts end  |