Class: Straw::Tracer
- Inherits:
-
Object
- Object
- Straw::Tracer
- Defined in:
- lib/straw.rb
Instance Method Summary collapse
-
#initialize(logger) ⇒ Tracer
constructor
A new instance of Tracer.
- #trace(defaults = {}) ⇒ Object
Constructor Details
#initialize(logger) ⇒ Tracer
Returns a new instance of Tracer.
42 43 44 |
# File 'lib/straw.rb', line 42 def initialize(logger) @logger = logger end |
Instance Method Details
#trace(defaults = {}) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/straw.rb', line 46 def trace(defaults = {}) tracer = TracePoint.new(:call) do |x| @logger.debug(defaults.merge({ path: x.path, lineno: x.lineno, clazz: x.defined_class, method: x.method_id, args: args_from(x), locals: locals_from(x) })) rescue StandardError => boom @logger.error(defaults.merge({ message: boom., stacktrace: boom.backtrace })) end tracer.enable yield ensure tracer.disable end |