class PryTester
Attributes
out[R]
pry[R]
Public Class Methods
new(target = TOPLEVEL_BINDING, options = {})
click to toggle source
# File lib/pry_tester.rb, line 8 def initialize(target = TOPLEVEL_BINDING, options = {}) @pry = Pry.new(options.merge(:target => target)) @history = options[:history] @pry.inject_sticky_locals! reset_output end
Public Instance Methods
eval(*strs)
click to toggle source
# File lib/pry_tester.rb, line 16 def eval(*strs) reset_output result = nil strs.flatten.each do |str| # Check for space prefix. See #1369. if str !~ /^\s\S/ str = "#{str.strip}\n" end @history.push str if @history if @pry.process_command(str) result = last_command_result_or_output else result = @pry.evaluate_ruby(str) end end result end
last_command_result()
click to toggle source
# File lib/pry_tester.rb, line 56 def last_command_result result = Pry.current[:pry_cmd_result] result.retval if result end
last_output()
click to toggle source
# File lib/pry_tester.rb, line 47 def last_output @out.string if @out end
process_command(command_str)
click to toggle source
# File lib/pry_tester.rb, line 51 def process_command(command_str) @pry.process_command(command_str) or raise "Not a valid command" last_command_result_or_output end
push(*lines)
click to toggle source
# File lib/pry_tester.rb, line 37 def push(*lines) Array(lines).flatten.each do |line| @pry.eval(line) end end
push_binding(context)
click to toggle source
# File lib/pry_tester.rb, line 43 def push_binding(context) @pry.push_binding context end
Protected Instance Methods
last_command_result_or_output()
click to toggle source
# File lib/pry_tester.rb, line 63 def last_command_result_or_output result = last_command_result if result != Pry::Command::VOID_VALUE result else last_output end end
reset_output()
click to toggle source
# File lib/pry_tester.rb, line 72 def reset_output @out = StringIO.new @pry.output = @out end