Sha256: 37a1c40893223e97c34070d91e58bca34cceaee5cc5ce5f03d5872a851f39715
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
module PryStackExplorer class WhenStartedHook def caller_bindings(binding_stack) target = binding_stack.last if binding.of_caller(7).eval('__method__') == :pry drop_number = 9 else drop_number = 8 end bindings = binding.callers.drop(drop_number) # Use the binding returned by #of_caller if possible (as we get # access to frame_type). # Otherwise stick to the given binding (target). if !PryStackExplorer.bindings_equal?(target, bindings.first) bindings.shift bindings.unshift(target) end bindings end def call(binding_stack, options, _pry_) options = { :call_stack => true, :initial_frame => 0 }.merge!(options) return if !options[:call_stack] if options[:call_stack].is_a?(Array) bindings = options[:call_stack] if bindings.empty? || !bindings.all? { |v| v.is_a?(Binding) } raise ArgumentError, ":call_stack must be an array of bindings" end else bindings = caller_bindings(binding_stack) end PryStackExplorer.create_and_push_frame_manager bindings, _pry_, :initial_frame => options[:initial_frame] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pry-stack_explorer-0.2.9pre5 | lib/pry-stack_explorer/when_started_hook.rb |