class RSpec::Mocks::ConstantStubber::UndefinedConstantSetter

Sets an undefined constant for the duration of an example.

@api private

Public Instance Methods

previously_defined?() click to toggle source
# File lib/rspec/mocks/stub_const.rb, line 218
def previously_defined?
  false
end
rspec_reset() click to toggle source
# File lib/rspec/mocks/stub_const.rb, line 222
def rspec_reset
  @deepest_defined_const.send(:remove_const, @const_to_remove)
end
stub() click to toggle source
# File lib/rspec/mocks/stub_const.rb, line 202
def stub
  remaining_parts = @context_parts.dup
  @deepest_defined_const = @context_parts.inject(Object) do |klass, name|
    break klass unless klass.const_defined?(name)
    remaining_parts.shift
    klass.const_get(name)
  end

  context = remaining_parts.inject(@deepest_defined_const) do |klass, name|
    klass.const_set(name, Module.new)
  end

  @const_to_remove = remaining_parts.first || @const_name
  context.const_set(@const_name, @stubbed_value)
end