In Files

Class/Module Index [+]

Quicksearch

RSpec

Namespace for all core RSpec code.

Constants

MODULES_TO_AUTOLOAD

@private

SharedContext

@private

Public Class Methods

configuration() click to toggle source

Returns the global [Configuration](RSpec/Core/Configuration) object. While you can use this method to access the configuration, the more common convention is to use [RSpec.configure](RSpec#configure-class_method).

@example

RSpec.configuration.drb_port = 1234

@see RSpec.configure @see Core::Configuration

# File lib/rspec/core.rb, line 61
def self.configuration
  @configuration ||= begin
                       config = RSpec::Core::Configuration.new
                       config.expose_dsl_globally = true
                       config
                     end

end
configure() click to toggle source

Yields the global configuration to a block. @yield [Configuration] global configuration

@example

RSpec.configure do |config|
  config.add_formatter 'documentation'
end

@see Core::Configuration

# File lib/rspec/core.rb, line 78
def self.configure
  yield configuration if block_given?
end
const_missing(name) click to toggle source

@private

# File lib/rspec/core.rb, line 152
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
current_example() click to toggle source

The example being executed.

The primary audience for this method is library authors who need access to the example currently being executed and also want to support all versions of RSpec 2 and 3.

@example

RSpec.configure do |c|
  # context.example is deprecated, but RSpec.current_example is not
  # available until RSpec 3.0.
  fetch_current_example = RSpec.respond_to?(:current_example) ?
    proc { RSpec.current_example } : proc { |context| context.example }

  c.before(:example) do
    example = fetch_current_example.call(self)

    # ...
  end
end
# File lib/rspec/core.rb, line 103
def self.current_example
  thread_local_metadata[:current_example]
end
current_example=(example) click to toggle source

Set the current example being executed. @api private

# File lib/rspec/core.rb, line 109
def self.current_example=(example)
  thread_local_metadata[:current_example] = example
end
reset() click to toggle source

Used to ensure examples get reloaded between multiple runs in the same process.

Users must invoke this if they want to have the configuration reset when they use runner multiple times within the same process.

# File lib/rspec/core.rb, line 48
def self.reset
  @world = nil
  @configuration = nil
end
thread_local_metadata() click to toggle source

@private A single thread local variable so we don’t excessively pollute that namespace.

# File lib/rspec/core.rb, line 116
def self.thread_local_metadata
  Thread.current[:_rspec] ||= {}
end
world() click to toggle source

@private Internal container for global non-configuration data

# File lib/rspec/core.rb, line 122
def self.world
  @world ||= RSpec::Core::World.new
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.