Sha256: 119c815df2461929c7b56fb6d018dd607b1ffa13c0996d835bb314075bab3723

Contents?: true

Size: 581 Bytes

Versions: 2

Compression:

Stored size: 581 Bytes

Contents

# frozen_string_literal: true

module StackTrace
  class ArgumentExtractor
    class << self
      def extract(trace_point)
        trace_point.parameters
                  .map(&:last)
                  .each_with_object({}) do |parameter, memo|
                    memo[parameter] = extract_argument(trace_point, parameter)
                  end
      end

      private

      def extract_argument(trace_point, parameter)
        trace_point.binding.eval(parameter.to_s)
      rescue Exception # SyntaxError can happen as we are calling `eval` here!
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
stack_trace-0.8.0 lib/stack_trace/argument_extractor.rb
stack_trace-0.7.0 lib/stack_trace/argument_extractor.rb