class BetterErrors::REPL::Pry
Public Class Methods
new(binding)
click to toggle source
# File lib/better_errors/repl/pry.rb, line 35 def initialize(binding) @fiber = Fiber.new do @pry.repl binding end @input = BetterErrors::REPL::Pry::Input.new @output = BetterErrors::REPL::Pry::Output.new @pry = ::Pry.new input: @input, output: @output @pry.hooks.clear_all if defined?(@pry.hooks.clear_all) @fiber.resume end
Public Instance Methods
prompt()
click to toggle source
# File lib/better_errors/repl/pry.rb, line 53 def prompt if indent = @pry.instance_variable_get(:@indent) and !indent.indent_level.empty? ["..", indent.indent_level] else [">>", ""] end rescue [">>", ""] end
send_input(str)
click to toggle source
# File lib/better_errors/repl/pry.rb, line 46 def send_input(str) local ::Pry.config, color: false, pager: false do @fiber.resume "#{str}\n" [@output.read_buffer, *prompt] end end
Private Instance Methods
local(obj, attrs) { || ... }
click to toggle source
# File lib/better_errors/repl/pry.rb, line 64 def local(obj, attrs) old_attrs = {} attrs.each do |k, v| old_attrs[k] = obj.send k obj.send "#{k}=", v end yield ensure old_attrs.each do |k, v| obj.send "#{k}=", v end end