class IRuby::PryBackend
Attributes
Public Class Methods
Source
# File lib/iruby/backend.rb, line 99 def initialize require 'pry' Pry.memory_size = 3 Pry.pager = false # Don't use the pager Pry.print = proc {|output, value|} # No result printing Pry.exception_handler = proc {|output, exception, _| } @eval_path = Pry.eval_path reset end
Public Instance Methods
Source
# File lib/iruby/backend.rb, line 140 def complete(code) @pry.complete(code) end
Source
# File lib/iruby/backend.rb, line 113 def eval(code, store_history) Pry.current_line = 1 @pry.last_result = nil unless @pry.eval(code) reset raise SystemExit end # Pry::Code.complete_expression? return false if !@pry.eval_string.empty? syntax_error = @pry.eval_string @pry.reset_eval_string @pry.evaluate_ruby(syntax_error) # Pry::Code.complete_expression? raise SyntaxError # evaluate again for current line number elsif @pry.last_result_is_exception? && @pry.last_exception.is_a?(SyntaxError) && @pry.last_exception.is_a?(Pry::UserError) @pry.evaluate_ruby(code) end raise @pry.last_exception if @pry.last_result_is_exception? @pry.push_initial_binding unless @pry.current_binding # ensure that we have a binding @pry.last_result end
Source
# File lib/iruby/backend.rb, line 144 def reset @pry = Pry.new(output: $stdout, target: eval_binding) end