Sha256: 9076fa97d2640274a781b6c4251f6f9cfa689af7d5e0be7ed721b044f91ceb59

Contents?: true

Size: 589 Bytes

Versions: 2

Compression:

Stored size: 589 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).st_name
                  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.6.0 lib/stack_trace/argument_extractor.rb
stack_trace-0.5.0 lib/stack_trace/argument_extractor.rb