class Pry::Testable::PryTester
Attributes
out[R]
pry[R]
Public Class Methods
new(target = TOPLEVEL_BINDING, options = {})
click to toggle source
# File lib/pry/testable/pry_tester.rb, line 12 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/testable/pry_tester.rb, line 19 def eval(*strs) reset_output result = nil strs.flatten.each do |str| # Check for space prefix. See #1369. str = "#{str.strip}\n" if str !~ /^\s\S/ @history.push str if @history result = if @pry.process_command(str) last_command_result_or_output else # Check if this is a multiline paste. begin complete_expr = Pry::Code.complete_expression?(str) rescue SyntaxError => exception @pry.output.puts( "SyntaxError: #{exception.message.sub(/.*syntax error, */m, '')}" ) end @pry.evaluate_ruby(str) if complete_expr end end result end
last_command_result()
click to toggle source
# File lib/pry/testable/pry_tester.rb, line 66 def last_command_result result = Pry.current[:pry_cmd_result] result.retval if result end
last_output()
click to toggle source
# File lib/pry/testable/pry_tester.rb, line 57 def last_output @out.string if @out end
process_command(command_str)
click to toggle source
# File lib/pry/testable/pry_tester.rb, line 61 def process_command(command_str) @pry.process_command(command_str) || raise("Not a valid command") last_command_result_or_output end
push(*lines)
click to toggle source
# File lib/pry/testable/pry_tester.rb, line 47 def push(*lines) Array(lines).flatten.each do |line| @pry.eval(line) end end
push_binding(context)
click to toggle source
# File lib/pry/testable/pry_tester.rb, line 53 def push_binding(context) @pry.push_binding context end
Protected Instance Methods
last_command_result_or_output()
click to toggle source
# File lib/pry/testable/pry_tester.rb, line 73 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/testable/pry_tester.rb, line 82 def reset_output @out = StringIO.new @pry.output = @out end