module Pry::Testable::Variables

Public Instance Methods

insert_variable(name, value, binding) click to toggle source

@param [String] name

The name of a variable.

@param [String] value

Its value.

@param [Binding] binding

The binding object to insert a variable into.

@return [void]

# File lib/pry/testable/variables.rb, line 44
def insert_variable(name, value, binding)
  Pry.current[:pry_local] = value
  binding.eval("#{name} = ::Pry.current[:pry_local]")
ensure
  Pry.current[:pry_local] = nil
end
temporary_constants(*names) { || ... } click to toggle source

@example

temporary_constants(:Foo, :Bar) do
  Foo = Class.new(RuntimeError)
  Bar = Class.new(RuntimeError)
end
Foo # => NameError
Bar # => NameError

@param [Array<Symbol>] names

An array of constant names that be defined by a block,
and removed by this method afterwards.

@return [void]

# File lib/pry/testable/variables.rb, line 21
def temporary_constants(*names)
  names.each do |name|
    Object.remove_const name if Object.const_defined?(name)
  end
  yield
ensure
  names.each do |name|
    Object.remove_const name if Object.const_defined?(name)
  end
end