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
ory-client-0.0.1.alpha29 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
primary_connect_proto-0.0.6 vendor/bundle/ruby/2.6.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-client-0.0.1.alpha28 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
primary_connect_proto-0.0.5 vendor/bundle/ruby/2.6.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-client-0.0.1.alpha27 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-client-0.0.1.alpha24 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
primary_connect_proto-0.0.4 vendor/bundle/ruby/2.6.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
primary_connect_proto-0.0.3 vendor/bundle/ruby/2.6.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-client-0.0.1.alpha23 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-kratos-client-0.8.0.alpha2 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-client-0.0.1.alpha21 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-keto-client-0.7.0.alpha1 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-keto-client-0.7.0.alpha0 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-kratos-client-0.7.6.alpha7 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-kratos-client-0.7.6.alpha6 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-kratos-client-0.7.6.alpha5 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-kratos-client-0.7.6.alpha4 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-kratos-client-0.7.6.alpha3 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-kratos-client-0.7.6.alpha1 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb
ory-kratos-client-0.7.5.alpha2 vendor/bundle/ruby/2.5.0/gems/pry-0.13.1/lib/pry/testable/variables.rb