Sha256: 8a5e73e68b6865966ef6267ade8b8a70d637a6fafe26fd95db5becf743fb5d21
Contents?: true
Size: 1.54 KB
Versions: 3
Compression:
Stored size: 1.54 KB
Contents
require 'pry' unless defined? Pry module PryMoves class PryWrapper def initialize(binding_, pry_start_options = {}) @init_binding = binding_ @pry_start_options = pry_start_options # Options to use for Pry.start end def run(&block) PryMoves.lock return_value = nil PryMoves.is_open = true @command = catch(:breakout_nav) do # Coordinates with PryMoves::Commands return_value = yield nil # Nothing thrown == no navigational command end PryMoves.is_open = false if @command trace_command else PryMoves.unlock if @pry_start_options[:pry_remote] && PryMoves.current_remote_server PryMoves.current_remote_server.teardown end end return_value end private def trace_command if @command[:action] == :debug wrap_debug else start_tracing end end def wrap_debug #puts "##wrap debug" #puts "CALLER:\n#{caller.join "\n"}\n" # Thread.abort_on_exception=true Thread.new do Thread.current[:pry_moves_debug] = true #@command[:binding].eval 'puts "###########"' start_tracing begin @command[:binding].eval @command[:param] rescue => e Thread.current.set_trace_func nil puts e end end.join binding_ = @last_runtime_binding || @init_binding Pry.start(binding_, @pry_start_options) end def start_tracing @last_runtime_binding = @command[:binding] @tracer = PryMoves::Tracer.new @command, @pry_start_options @tracer.trace end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
pry-moves-0.1.4 | lib/pry-moves/pry_wrapper.rb |
pry-moves-0.1.3 | lib/pry-moves/pry_wrapper.rb |
pry-moves-0.1.2 | lib/pry-moves/pry_wrapper.rb |