From 1471507b3a0cd22212e9c0daefed9f6540c32fd6 Mon Sep 17 00:00:00 2001 From: John Mair Date: Wed, 15 Dec 2010 15:21:13 +1300 Subject: [PATCH] added ls/cd/cd.. --- lib/pry.rb | 26 ++++++++++++++++---------- lib/pry/output.rb | 4 ++++ lib/pry/version.rb | 2 +- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/lib/pry.rb b/lib/pry.rb index 843209b4..58530c92 100644 --- a/lib/pry.rb +++ b/lib/pry.rb @@ -65,7 +65,6 @@ class Pry def nesting=(v) self.class.nesting = v end - # loop def repl(target=TOPLEVEL_BINDING) @@ -145,16 +144,28 @@ class Pry eval_string.clear when "exit_all" throw(:breakout, 0) - when "exit", "quit", "back" + when "exit", "quit", "back", /^cd\s*\.\./ output.exit throw(:breakout, nesting.level) - when /show_method\s*(\w*)/ + when "ls" + eval_string.replace("local_variables + instance_variables") + when /^cd\s+(.+)/ + obj = $~.captures.first + target.eval("#{obj}.pry") + eval_string.clear + when /^show_method\s*(\w*)/ meth_name = ($~.captures).first file, line = target.eval("method(:#{meth_name}).source_location") tp = Pry.new.tap { |v| v.input = SourceInput.new(file, line) } - tp.r.display + output.show_method tp.r eval_string.clear - when /jump_to\s*(\d*)/ + when /^show_instance_method\s*(\w*)/ + meth_name = ($~.captures).first + file, line = target.eval("instance_method(:#{meth_name}).source_location") + tp = Pry.new.tap { |v| v.input = SourceInput.new(file, line) } + output.show_method tp.r + eval_string.clear + when /^jump_to\s*(\d*)/ break_level = ($~.captures).first.to_i output.jump_to(break_level) @@ -193,13 +204,8 @@ class Pry case e.message when /(parse|syntax) error.*?\$end/i, /unterminated/i return false - else - return true end - else - true end - true end true end diff --git a/lib/pry/output.rb b/lib/pry/output.rb index 65d8677b..be0fcf62 100644 --- a/lib/pry/output.rb +++ b/lib/pry/output.rb @@ -56,6 +56,10 @@ class Pry puts "Last result: #{Pry.view(Pry.last_result)}" end + def show_method(code) + code.display + end + def warn_already_at_level(nesting_level) puts "Already at nesting level #{nesting_level}" end diff --git a/lib/pry/version.rb b/lib/pry/version.rb index 8ade4a79..1a85d3ab 100644 --- a/lib/pry/version.rb +++ b/lib/pry/version.rb @@ -1,3 +1,3 @@ class Pry - VERSION = "0.2.5pre1" + VERSION = "0.2.5pre2" end