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 |