module RSpec
def self.configuration
- See: Core::Configuration -
See: RSpec.configure -
def self.configuration @configuration ||= begin config = RSpec::Core::Configuration.new config.expose_dsl_globally = true config end end
def self.configure
- See: Core::Configuration -
Other tags:
- Yield: - global configuration
def self.configure yield configuration if block_given? end
def self.const_missing(name)
- Private: -
def self.const_missing(name) # Load rspec-expectations when RSpec::Matchers is referenced. This allows # people to define custom matchers (using `RSpec::Matchers.define`) before # rspec-core has loaded rspec-expectations (since it delays the loading of # it to allow users to configure a different assertion/expectation # framework). `autoload` can't be used since it works with ruby's built-in # require (e.g. for files that are available relative to a load path dir), # but not with rubygems' extended require. # # As of rspec 2.14.1, we no longer require `rspec/mocks` and # `rspec/expectations` when `rspec` is required, so we want # to make them available as an autoload. require MODULES_TO_AUTOLOAD.fetch(name) { return super } ::RSpec.const_get(name) end
def self.current_example
end
end
# ...
example = fetch_current_example.call(self)
c.before(:example) do
proc { RSpec.current_example } : proc { |context| context.example }
fetch_current_example = RSpec.respond_to?(:current_example) ?
# available until RSpec 3.0.
# context.example is deprecated, but RSpec.current_example is not
RSpec.configure do |c|
@example
versions of RSpec 2 and 3.
to the example currently being executed and also want to support all
The primary audience for this method is library authors who need access
The example being executed.
def self.current_example thread_local_metadata[:current_example] end
def self.current_example=(example)
- Api: - private
def self.current_example=(example) thread_local_metadata[:current_example] = example end
def self.reset
Users must invoke this if they want to have the configuration reset when
the same process.
Used to ensure examples get reloaded between multiple runs in
def self.reset @world = nil @configuration = nil end
def self.thread_local_metadata
- Private: -
def self.thread_local_metadata Thread.current[:_rspec] ||= {} end
def self.world
- Private: -
def self.world @world ||= RSpec::Core::World.new end