Sha256: 666e1a0d29ecd4a1b387f11a426896a10c09fe689b8ae21710ce362fcb73f037

Contents?: true

Size: 1.26 KB

Versions: 6796

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

class Pry
  module Testable
    module Variables
      #
      # @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]
      #
      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

      #
      # @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]
      #
      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
    end
  end
end

Version data entries

6,796 entries across 6,792 versions & 31 rubygems

Version Path
qiita_org-0.1.26 gems/ruby/2.7.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
qiita_org-0.1.25 gems/ruby/2.7.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
passbase-1.1.0 vendor/bundle/ruby/2.7.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
passbase-1.0.3 vendor/bundle/ruby/2.7.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
passbase-1.0.2 vendor/bundle/ruby/2.7.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
passbase-1.0.1 vendor/bundle/ruby/2.7.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
passbase-1.0.0 vendor/bundle/ruby/2.7.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
metanorma-cli-1.3.4 gems/ruby/2.6.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
metanorma-cli-1.3.3.1 gems/ruby/2.6.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
files.com-1.0.1 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
talon_one-2.0.0 vendor/bundle/ruby/2.3.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
talon_one-2.0.0 vendor/bundle/ruby/2.7.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
pry-0.13.1-java lib/pry/testable/variables.rb
pry-0.13.1 lib/pry/testable/variables.rb
pry-0.13.0-java lib/pry/testable/variables.rb
pry-0.13.0 lib/pry/testable/variables.rb