Class: RSpec::Core::Configuration

### Home Classes Methods

### In Files

- lib/rspec/core/configuration.rb

### Parent

Object

### Namespace

- CLASS RSpec::Core::Configuration::MustBeConfiguredBeforeExampleGroupsError

### Methods

- ::add_setting
- ::define_aliases
- ::define_predicate_for
- ::define_reader
- ::deprecate_alias_key
- ::new
- #add_formatter
- #add_setting
- #alias_example_to
- #alias_it_behaves_like_to
- #alias_it_should_behave_like_to
- #backtrace_clean_patterns
- #backtrace_clean_patterns=
- #backtrace_exclusion_patterns
- #backtrace_exclusion_patterns=
- #backtrace_inclusion_patterns
- #backtrace_inclusion_patterns=
- #color
- #color=
- #color_enabled
- #color_enabled=
- #configure_expectation_framework
- #configure_group
- #configure_mock_framework
- #debug=
- #debug?
- #example_ordering_block
- #exclusion_filter
- #exclusion_filter=
- #expect_with
- #expectation_framework=
- #expectation_frameworks
- #extend
- #files_or_directories_to_run=
- #filter
- #filter=
- #filter_run
- #filter_run_excluding
- #filter_run_including
- #force
- #format_docstrings
- #format_docstrings_block
- #formatter=
- #formatters
- #full_backtrace=
- #full_backtrace?
- #full_description
- #full_description=
- #group_ordering_block
- #include
- #inclusion_filter
- #inclusion_filter=
- #libs=
- #line_numbers
- #line_numbers=
- #load_spec_files
- #mock_framework
- #mock_framework=
- #mock_with
- #order=
- #order_examples
- #order_groups
- #order_groups_and_examples
- #profile_examples
- #randomize?
- #reporter
- #requires=
- #reset
- #safe_extend
- #safe_include
- #seed=
- #setup_load_path_and_require
- #warnings
- #warnings=

### Included Modules

- RSpec::Core::Hooks

### Class/Module Index

Quicksearch

- RSpec
- RSpec::Core
- RSpec::Core::BacktraceCleaner
- RSpec::Core::BacktraceFormatter
- RSpec::Core::CommandLine
- RSpec::Core::Configuration
- RSpec::Core::Configuration::MustBeConfiguredBeforeExampleGroupsError
- RSpec::Core::ConfigurationOptions
- RSpec::Core::ConstMissing
- RSpec::Core::DRbCommandLine
- RSpec::Core::DSL
- RSpec::Core::Deprecation
- RSpec::Core::DrbOptions
- RSpec::Core::Example
- RSpec::Core::Example::NotPendingExampleFixed
- RSpec::Core::Example::Procsy
- RSpec::Core::ExampleGroup
- RSpec::Core::Extensions
- RSpec::Core::Extensions::InstanceEvalWithArgs
- RSpec::Core::Extensions::ModuleEvalWithArgs
- RSpec::Core::Extensions::Ordered
- RSpec::Core::Extensions::Ordered::ExampleGroups
- RSpec::Core::Extensions::Ordered::Examples
- RSpec::Core::FilterManager
- RSpec::Core::FilterManager::BackwardCompatibility
- RSpec::Core::FilterManager::Describable
- RSpec::Core::Formatters
- RSpec::Core::Formatters::BaseFormatter
- RSpec::Core::Formatters::BaseTextFormatter
- RSpec::Core::Formatters::DeprecationFormatter
- RSpec::Core::Formatters::DocumentationFormatter
- RSpec::Core::Formatters::Helpers
- RSpec::Core::Formatters::HtmlFormatter
- RSpec::Core::Formatters::HtmlPrinter
- RSpec::Core::Formatters::JsonFormatter
- RSpec::Core::Formatters::ProgressFormatter
- RSpec::Core::Formatters::SnippetExtractor
- RSpec::Core::Formatters::SnippetExtractor::NullConverter
- RSpec::Core::Formatters::TextMateFormatter
- RSpec::Core::Hooks
- RSpec::Core::Hooks::AfterAllHook
- RSpec::Core::Hooks::AfterHook
- RSpec::Core::Hooks::AroundHook
- RSpec::Core::Hooks::AroundHookCollection
- RSpec::Core::Hooks::BeforeHook
- RSpec::Core::Hooks::GroupHookCollection
- RSpec::Core::Hooks::Hook
- RSpec::Core::Hooks::HookCollection
- RSpec::Core::Hooks::HookCollectionAliases
- RSpec::Core::Hooks::RegistersGlobals
- RSpec::Core::MemoizedHelpers
- RSpec::Core::MemoizedHelpers::BeforeAllMemoizedHash
- RSpec::Core::MemoizedHelpers::ClassMethods
- RSpec::Core::Metadata
- RSpec::Core::Metadata::ExampleMetadataHash
- RSpec::Core::Metadata::GroupMetadataHash
- RSpec::Core::Metadata::MetadataHash
- RSpec::Core::MetadataHashBuilder
- RSpec::Core::MetadataHashBuilder::Common
- RSpec::Core::MetadataHashBuilder::WithConfigWarning
- RSpec::Core::MetadataHashBuilder::WithDeprecationWarning
- RSpec::Core::MockFrameworkAdapter
- RSpec::Core::Parser
- RSpec::Core::Pending
- RSpec::Core::Pending::PendingDeclaredInExample
- RSpec::Core::Pending::PendingExampleFixedError
- RSpec::Core::ProjectInitializer
- RSpec::Core::RakeTask
- RSpec::Core::Reporter
- RSpec::Core::RubyProject
- RSpec::Core::Runner
- RSpec::Core::SharedContext
- RSpec::Core::SharedExampleGroup
- RSpec::Core::SharedExampleGroup::Collection
- RSpec::Core::SharedExampleGroup::Registry
- RSpec::Core::SharedExampleGroup::TopLevelDSL
- RSpec::Core::Time
- RSpec::Core::Version
- RSpec::Core::World
- RSpec::Rake
- RSpec::Runner
- Autotest
- Autotest::Rspec2
- Kernel

No matching classes.

# RSpec::Core::Configuration

Stores runtime configuration information.

Configuration options are loaded from `~/.rspec`, `.rspec`, `.rspec-local`, command line switches, and the `SPEC_OPTS` environment variable (listed in lowest to highest precedence; for example, an option in `~/.rspec` can be overridden by an option in `.rspec-local`).

@example Standard settings

    RSpec.configure do |c|
      c.drb          = true
      c.drb_port     = 1234
      c.default_path = 'behavior'
    end

@example Hooks

    RSpec.configure do |c|
      c.before(:suite) { establish_connection }
      c.before(:each)  { log_in_as :authorized }
      c.around(:each)  { |ex| Database.transaction(&ex) }
    end

@see RSpec.configure @see Hooks

### Constants

DEFAULT_FORMATTER

  @private

DEFAULT_ORDERING

  @private

RANDOM_ORDERING

  @private

### Attributes

backtrace_cleaner[R]
filter_manager[RW]

@private

### Public Class Methods

add_setting(name, opts={}) click to toggle source

@private

Invoked by the `add_setting` instance method. Use that method on a `Configuration` instance rather than this class method.

    # File lib/rspec/core/configuration.rb, line 65
    def self.add_setting(name, opts={})
      raise "Use the instance add_setting method if you want to set a default" if opts.has_key?(:default)
      if opts[:alias]
        deprecate_alias_key
        define_aliases(opts[:alias], name)
      else
        attr_writer name
        define_reader name
        define_predicate_for name
      end
      [opts[:alias_with]].flatten.compact.each do |alias_name|
        define_aliases(name, alias_name)
      end
    end

define_aliases(name, alias_name) click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 50
    def self.define_aliases(name, alias_name)
      alias_method alias_name, name
      alias_method "#{alias_name}=", "#{name}="
      define_predicate_for alias_name
    end

define_predicate_for(*names) click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 57
    def self.define_predicate_for(*names)
      names.each {|name| alias_method "#{name}?", name}
    end

define_reader(name) click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 37
    def self.define_reader(name)
      define_method(name) do
        variable = instance_variable_defined?("@#{name}") ? instance_variable_get("@#{name}") : nil
        value_for(name, variable)
      end
    end

deprecate_alias_key() click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 45
    def self.deprecate_alias_key
      RSpec.deprecate("add_setting with :alias option", :replacement => ":alias_with")
    end

new() click to toggle source

    # File lib/rspec/core/configuration.rb, line 186
    def initialize
      @expectation_frameworks = []
      @include_or_extend_modules = []
      @mock_framework = nil
      @files_to_run = []
      @formatters = []
      @color = false
      @pattern = '**/*_spec.rb'
      @failure_exit_code = 1

      @backtrace_cleaner = BacktraceCleaner.new

      @default_path = 'spec'
      @deprecation_stream = $stderr
      @filter_manager = FilterManager.new
      @preferred_options = {}
      @seed = srand % 0xFFFF
      @failure_color = :red
      @success_color = :green
      @pending_color = :yellow
      @default_color = :white
      @fixed_color = :blue
      @detail_color = :cyan
      @profile_examples = false
      @requires = []
      @libs = []
    end

### Public Instance Methods

add_formatter(formatter_to_use, *paths) click to toggle source

@overload add_formatter(formatter)

Adds a formatter to the formatters collection. `formatter` can be a string representing any of the built-in formatters (see `built_in_formatter`), or a custom formatter class.

### Note

For internal purposes, `add_formatter` also accepts the name of a class and paths to use for output streams, but you should consider that a private api that may change at any time without notice.

    # File lib/rspec/core/configuration.rb, line 571
    def add_formatter(formatter_to_use, *paths)
      formatter_class =
        built_in_formatter(formatter_to_use) ||
        custom_formatter(formatter_to_use) ||
        (raise ArgumentError, "Formatter '#{formatter_to_use}' unknown - maybe you meant 'documentation' or 'progress'?.")

      paths << output if paths.empty?
      formatters << formatter_class.new(*paths.map {|p| String === p ? file_at(p) : p})
    end

Also aliased as: formatter=
add_setting(name, opts={}) click to toggle source

@overload add_setting(name) @overload add_setting(name, opts) @option opts [Symbol] :default

    set a default value for the generated getter and predicate methods:

        add_setting(:foo, :default => "default value")

@option opts [Symbol] :alias_with

    Use `:alias_with` to alias the setter, getter, and predicate to another
    name, or names:

        add_setting(:foo, :alias_with => :bar)
        add_setting(:foo, :alias_with => [:bar, :baz])

Adds a custom setting to the RSpec.configuration object.

    RSpec.configuration.add_setting :foo

Used internally and by extension frameworks like rspec-rails, so they can add config settings that are domain specific. For example:

    RSpec.configure do |c|
      c.add_setting :use_transactional_fixtures,
        :default => true,
        :alias_with => :use_transactional_examples
    end

`add_setting` creates three methods on the configuration object, a setter, a getter, and a predicate:

    RSpec.configuration.foo=(value)
    RSpec.configuration.foo
    RSpec.configuration.foo? # returns true if foo returns anything but nil or false

    # File lib/rspec/core/configuration.rb, line 268
    def add_setting(name, opts={})
      default = opts.delete(:default)
      (class << self; self; end).class_eval do
        add_setting(name, opts)
      end
      send("#{name}=", default) if default
    end

alias_example_to(new_name, *args) click to toggle source

Creates a method that delegates to `example` including the submitted `args`. Used internally to add variants of `example` like `pending`:

@example

    alias_example_to :pending, :pending => true

    # This lets you do this:

    describe Thing do
      pending "does something" do
        thing = Thing.new
      end
    end

    # ... which is the equivalent of

    describe Thing do
      it "does something", :pending => true do
        thing = Thing.new
      end
    end

    # File lib/rspec/core/configuration.rb, line 636
    def alias_example_to(new_name, *args)
      extra_options = build_metadata_hash_from(args)
      RSpec::Core::ExampleGroup.alias_example_to(new_name, extra_options)
    end

alias_it_behaves_like_to(new_name, report_label = '') click to toggle source

Define an alias for it_should_behave_like that allows different language (like "it_has_behavior" or "it_behaves_like") to be employed when including shared examples.

Example:

    alias_it_behaves_like_to(:it_has_behavior, 'has behavior:')

allows the user to include a shared example group like:

    describe Entity do
      it_has_behavior 'sortability' do
        let(:sortable) { Entity.new }
      end
    end

which is reported in the output as:

    Entity
      has behavior: sortability
        # sortability examples here

    # File lib/rspec/core/configuration.rb, line 662
    def alias_it_behaves_like_to(new_name, report_label = '')
      RSpec::Core::ExampleGroup.alias_it_behaves_like_to(new_name, report_label)
    end

Also aliased as: alias_it_should_behave_like_to
alias_it_should_behave_like_to(new_name, report_label = '') click to toggle source
Alias for: alias_it_behaves_like_to
backtrace_clean_patterns() click to toggle source

The patterns to discard from backtraces. Deprecated, use Configuration#backtrace_exclusion_patterns instead

Defaults to RSpec::Core::BacktraceCleaner::DEFAULT_EXCLUSION_PATTERNS

One can replace the list by using the setter or modify it through the getter

To override this behaviour and display a full backtrace, use `--backtrace`on the command line, in a `.rspec` file, or in the `rspec_options` attribute of RSpec's rake task.

    # File lib/rspec/core/configuration.rb, line 298
    def backtrace_clean_patterns
      RSpec.deprecate("RSpec::Core::Configuration#backtrace_clean_patterns",
                      :replacement => "RSpec::Core::Configuration#backtrace_exclusion_patterns")
      @backtrace_cleaner.exclusion_patterns
    end

backtrace_clean_patterns=(patterns) click to toggle source

    # File lib/rspec/core/configuration.rb, line 304
    def backtrace_clean_patterns=(patterns)
      RSpec.deprecate("RSpec::Core::Configuration#backtrace_clean_patterns",
                      :replacement => "RSpec::Core::Configuration#backtrace_exclusion_patterns")
      @backtrace_cleaner.exclusion_patterns = patterns
    end

backtrace_exclusion_patterns() click to toggle source

The patterns to discard from backtraces.

Defaults to RSpec::Core::BacktraceCleaner::DEFAULT_EXCLUSION_PATTERNS

One can replace the list by using the setter or modify it through the getter

To override this behaviour and display a full backtrace, use `--backtrace`on the command line, in a `.rspec` file, or in the `rspec_options` attribute of RSpec's rake task.

    # File lib/rspec/core/configuration.rb, line 335
    def backtrace_exclusion_patterns
      @backtrace_cleaner.exclusion_patterns
    end

backtrace_exclusion_patterns=(patterns) click to toggle source

    # File lib/rspec/core/configuration.rb, line 339
    def backtrace_exclusion_patterns=(patterns)
      @backtrace_cleaner.exclusion_patterns = patterns
    end

backtrace_inclusion_patterns() click to toggle source

The patterns to always include to backtraces.

Defaults to [Regexp.new Dir.getwd] if the current working directory matches any of the exclusion patterns. Otherwise it defaults to empty.

One can replace the list by using the setter or modify it through the getter

    # File lib/rspec/core/configuration.rb, line 317
    def backtrace_inclusion_patterns
      @backtrace_cleaner.inclusion_patterns
    end

backtrace_inclusion_patterns=(patterns) click to toggle source

    # File lib/rspec/core/configuration.rb, line 321
    def backtrace_inclusion_patterns=(patterns)
      @backtrace_cleaner.inclusion_patterns = patterns
    end

color(output=output_stream) click to toggle source

    # File lib/rspec/core/configuration.rb, line 479
    def color(output=output_stream)
      # rspec's built-in formatters all call this with the output argument,
      # but defaulting to output_stream for backward compatibility with
      # formatters in extension libs
      return false unless output_to_tty?(output)
      value_for(:color, @color)
    end

Also aliased as: color_enabled
color=(bool) click to toggle source

    # File lib/rspec/core/configuration.rb, line 487
    def color=(bool)
      if bool
        if RSpec.windows_os? and not ENV['ANSICON']
          warn "You must use ANSICON 1.31 or later (http://adoxa.3eeweb.com/ansicon/) to use colour on Windows"
          @color = false
        else
          @color = true
        end
      end
    end

Also aliased as: color_enabled=
color_enabled(output=output_stream) click to toggle source

TODO - deprecate color_enabled - probably not until the last 2.x release before 3.0

Alias for: color
color_enabled=(bool) click to toggle source
Alias for: color=
configure_expectation_framework() click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 888
    def configure_expectation_framework
      expectation_frameworks.each do |framework|
        RSpec::Core::ExampleGroup.send(:include, framework)
      end
    end

configure_group(group) click to toggle source

@private

Used internally to extend a group with modules using `include` and/or `extend`.

    # File lib/rspec/core/configuration.rb, line 851
    def configure_group(group)
      include_or_extend_modules.each do |include_or_extend, mod, filters|
        next unless filters.empty? || group.any_apply?(filters)
        send("safe_#{include_or_extend}", mod, group)
      end
    end

configure_mock_framework() click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 883
    def configure_mock_framework
      RSpec::Core::ExampleGroup.send(:include, mock_framework)
    end

debug=(bool) click to toggle source

    # File lib/rspec/core/configuration.rb, line 518
    def debug=(bool)
      return unless bool
      begin
        require 'ruby-debug'
        Debugger.start
      rescue LoadError => e
        raise #{'*'*50}#{e.message}If you have it installed as a ruby gem, then you need to either require'rubygems' or configure the RUBYOPT environment variable with the value'rubygems'.#{e.backtrace.join("\n")}#{'*'*50}
      end
    end

debug?() click to toggle source

    # File lib/rspec/core/configuration.rb, line 539
    def debug?
      !!defined?(Debugger)
    end

example_ordering_block() click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 967
    def example_ordering_block
      @example_ordering_block ||= DEFAULT_ORDERING
    end

exclusion_filter() click to toggle source

Returns the `exclusion_filter`. If none has been set, returns an empty hash.

    # File lib/rspec/core/configuration.rb, line 774
    def exclusion_filter
      filter_manager.exclusions
    end

exclusion_filter=(filter) click to toggle source

Clears and reassigns the `exclusion_filter`. Set to `nil` if you don't want any exclusion filter at all.

### Warning

This overrides any exclusion filters/tags set on the command line or in configuration files.

    # File lib/rspec/core/configuration.rb, line 768
    def exclusion_filter=(filter)
      filter_manager.exclude! build_metadata_hash_from([filter])
    end

expect_with(*frameworks) click to toggle source

Sets the expectation framework module(s) to be included in each example group.

`frameworks` can be `:rspec`, `:stdlib`, a custom module, or any combination thereof:

    config.expect_with :rspec
    config.expect_with :stdlib
    config.expect_with :rspec, :stdlib
    config.expect_with OtherExpectationFramework

RSpec will translate `:rspec` and `:stdlib` into the appropriate modules.

## Configuration

If the module responds to `configuration`, `expect_with` will yield the `configuration` object if given a block:

    config.expect_with OtherExpectationFramework do |custom_config|
      custom_config.custom_setting = true
    end

    # File lib/rspec/core/configuration.rb, line 441
    def expect_with(*frameworks)
      modules = frameworks.map do |framework|
        case framework
        when Module
          framework
        when :rspec
          require 'rspec/expectations'
          self.expecting_with_rspec = true
          ::RSpec::Matchers
        when :stdlib
          require 'test/unit/assertions'
          ::Test::Unit::Assertions
        else
          raise ArgumentError, "#{framework.inspect} is not supported"
        end
      end

      if (modules - @expectation_frameworks).any?
        assert_no_example_groups_defined(:expect_with)
      end

      if block_given?
        raise "expect_with only accepts a block with a single argument. Call expect_with #{modules.length} times, once with each argument, instead." if modules.length > 1
        raise "#{modules.first} must respond to `configuration` so that expect_with can yield it." unless modules.first.respond_to?(:configuration)
        yield modules.first.configuration
      end

      @expectation_frameworks.push(*modules)
    end

expectation_framework=(framework) click to toggle source

Delegates to expect_with(framework)

    # File lib/rspec/core/configuration.rb, line 415
    def expectation_framework=(framework)
      expect_with(framework)
    end

expectation_frameworks() click to toggle source

Returns the configured expectation framework adapter module(s)

    # File lib/rspec/core/configuration.rb, line 409
    def expectation_frameworks
      expect_with :rspec if @expectation_frameworks.empty?
      @expectation_frameworks
    end

extend(mod, *filters) click to toggle source

Tells RSpec to extend example groups with `mod`. Methods defined in `mod` are exposed to example groups (not examples). Use `filters` to constrain the groups to extend.

Similar to `include`, but behavior is added to example groups, which are classes, rather than the examples, which are instances of those classes.

@example

    module UiHelpers
      def run_in_browser
        # ...
      end
    end

    RSpec.configure do |config|
      config.extend(UiHelpers, :type => :request)
    end

    describe "edit profile", :type => :request do
      run_in_browser

      it "does stuff in the client" do
        # ...
      end
    end

@see include

    # File lib/rspec/core/configuration.rb, line 843
    def extend(mod, *filters)
      include_or_extend_modules << [:extend, mod, build_metadata_hash_from(filters)]
    end

files_or_directories_to_run=(*files) click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 609
    def files_or_directories_to_run=(*files)
      files = files.flatten
      files << default_path if (command == 'rspec' || Runner.running_in_drb?) && default_path && files.empty?
      self.files_to_run = get_files_to_run(files)
    end

filter() click to toggle source
Alias for: inclusion_filter
filter=(filter) click to toggle source
Alias for: inclusion_filter=
filter_run(*args) click to toggle source
Alias for: filter_run_including
filter_run_excluding(*args) click to toggle source

Adds key/value pairs to the `exclusion_filter`. If the `treat_symbols_as_metadata_keys_with_true_values` config option is set to true and `args` excludes any symbols that are not part of a hash, each symbol is treated as a key in the hash with the value `true`.

### Note

Filters set using this method can be overridden from the command line or config files (e.g. `.rspec`).

@example

    # given this declaration
    describe "something", :foo => 'bar' do
      # ...
    end

    # any of the following will exclude that group
    config.filter_run_excluding :foo => 'bar'
    config.filter_run_excluding :foo => /^ba/
    config.filter_run_excluding :foo => lambda {|v| v == 'bar'}
    config.filter_run_excluding :foo => lambda {|v,m| m[:foo] == 'bar'}

    # given a proc with an arity of 1, the lambda is passed the value related to the key, e.g.
    config.filter_run_excluding :foo => lambda {|v| v == 'bar'}

    # given a proc with an arity of 2, the lambda is passed the value related to the key,
    # and the metadata itself e.g.
    config.filter_run_excluding :foo => lambda {|v,m| m[:foo] == 'bar'}

    # with treat_symbols_as_metadata_keys_with_true_values = true
    filter_run_excluding :foo # same as filter_run_excluding :foo => true

    # File lib/rspec/core/configuration.rb, line 757
    def filter_run_excluding(*args)
      filter_manager.exclude_with_low_priority build_metadata_hash_from(args)
    end

filter_run_including(*args) click to toggle source

Adds key/value pairs to the `inclusion_filter`. If the `treat_symbols_as_metadata_keys_with_true_values` config option is set to true and `args` includes any symbols that are not part of a hash, each symbol is treated as a key in the hash with the value `true`.

### Note

Filters set using this method can be overridden from the command line or config files (e.g. `.rspec`).

@example

    # given this declaration
    describe "something", :foo => 'bar' do
      # ...
    end

    # any of the following will include that group
    config.filter_run_including :foo => 'bar'
    config.filter_run_including :foo => /^ba/
    config.filter_run_including :foo => lambda {|v| v == 'bar'}
    config.filter_run_including :foo => lambda {|v,m| m[:foo] == 'bar'}

    # given a proc with an arity of 1, the lambda is passed the value related to the key, e.g.
    config.filter_run_including :foo => lambda {|v| v == 'bar'}

    # given a proc with an arity of 2, the lambda is passed the value related to the key,
    # and the metadata itself e.g.
    config.filter_run_including :foo => lambda {|v,m| m[:foo] == 'bar'}

    # with treat_symbols_as_metadata_keys_with_true_values = true
    filter_run_including :foo # same as filter_run_including :foo => true

    # File lib/rspec/core/configuration.rb, line 699
    def filter_run_including(*args)
      filter_manager.include_with_low_priority build_metadata_hash_from(args)
    end

Also aliased as: filter_run
force(hash) click to toggle source

@private

Used to set higher priority option values from the command line.

    # File lib/rspec/core/configuration.rb, line 217
    def force(hash)
      if hash.has_key?(:seed)
        hash[:order], hash[:seed] = order_and_seed_from_seed(hash[:seed])
      elsif hash.has_key?(:order)
        set_order_and_seed(hash)
      end
      @preferred_options.merge!(hash)
      self.warnings = value_for :warnings, nil
    end

format_docstrings(&block) click to toggle source

Formats the docstring output using the block provided.

@example

    # This will strip the descriptions of both examples and example groups.
    RSpec.configure do |config|
      config.format_docstrings { |s| s.strip }
    end

    # File lib/rspec/core/configuration.rb, line 910
    def format_docstrings(&block)
      @format_docstrings_block = block_given? ? block : DEFAULT_FORMATTER
    end

format_docstrings_block() click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 915
    def format_docstrings_block
      @format_docstrings_block ||= DEFAULT_FORMATTER
    end

formatter=(formatter_to_use, *paths) click to toggle source
Alias for: add_formatter
formatters() click to toggle source

    # File lib/rspec/core/configuration.rb, line 583
    def formatters
      @formatters ||= []
    end

full_backtrace=(true_or_false) click to toggle source

    # File lib/rspec/core/configuration.rb, line 475
    def full_backtrace=(true_or_false)
      @backtrace_cleaner.full_backtrace = true_or_false
    end

full_backtrace?() click to toggle source

    # File lib/rspec/core/configuration.rb, line 471
    def full_backtrace?
      @backtrace_cleaner.full_backtrace?
    end

full_description() click to toggle source

    # File lib/rspec/core/configuration.rb, line 556
    def full_description
      filter.fetch :full_description, nil
    end

full_description=(description) click to toggle source

    # File lib/rspec/core/configuration.rb, line 552
    def full_description=(description)
      filter_run :full_description => Regexp.union(*Array(description).map {|d| Regexp.new(d) })
    end

group_ordering_block() click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 990
    def group_ordering_block
      @group_ordering_block ||= DEFAULT_ORDERING
    end

include(mod, *filters) click to toggle source

Tells RSpec to include `mod` in example groups. Methods defined in `mod` are exposed to examples (not example groups). Use `filters` to constrain the groups in which to include the module.

@example

    module AuthenticationHelpers
      def login_as(user)
        # ...
      end
    end

    module UserHelpers
      def users(username)
        # ...
      end
    end

    RSpec.configure do |config|
      config.include(UserHelpers) # included in all modules
      config.include(AuthenticationHelpers, :type => :request)
    end

    describe "edit profile", :type => :request do
      it "can be viewed by owning user" do
        login_as users(:jdoe)
        get "/profiles/jdoe"
        assert_select ".username", :text => 'jdoe'
      end
    end

@see extend

    # File lib/rspec/core/configuration.rb, line 810
    def include(mod, *filters)
      include_or_extend_modules << [:include, mod, build_metadata_hash_from(filters)]
    end

inclusion_filter() click to toggle source

Returns the `inclusion_filter`. If none has been set, returns an empty hash.

    # File lib/rspec/core/configuration.rb, line 720
    def inclusion_filter
      filter_manager.inclusions
    end

Also aliased as: filter
inclusion_filter=(filter) click to toggle source

Clears and reassigns the `inclusion_filter`. Set to `nil` if you don't want any inclusion filter at all.

### Warning

This overrides any inclusion filters/tags set on the command line or in configuration files.

    # File lib/rspec/core/configuration.rb, line 712
    def inclusion_filter=(filter)
      filter_manager.include! build_metadata_hash_from([filter])
    end

Also aliased as: filter=
libs=(libs) click to toggle source

    # File lib/rspec/core/configuration.rb, line 504
    def libs=(libs)
      libs.map do |lib|
        @libs.unshift lib
        $LOAD_PATH.unshift lib
      end
    end

line_numbers() click to toggle source

    # File lib/rspec/core/configuration.rb, line 548
    def line_numbers
      filter.fetch(:line_numbers,[])
    end

line_numbers=(line_numbers) click to toggle source

Run examples defined on `line_numbers` in all files to run.

    # File lib/rspec/core/configuration.rb, line 544
    def line_numbers=(line_numbers)
      filter_run :line_numbers => line_numbers.map{|l| l.to_i}
    end

load_spec_files() click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 895
    def load_spec_files
      files_to_run.uniq.each {|f| load File.expand_path(f) }
      raise_if_rspec_1_is_loaded
    end

mock_framework() click to toggle source

Returns the configured mock framework adapter module

    # File lib/rspec/core/configuration.rb, line 277
    def mock_framework
      mock_with :rspec unless @mock_framework
      @mock_framework
    end

mock_framework=(framework) click to toggle source

Delegates to mock_framework=(framework)

    # File lib/rspec/core/configuration.rb, line 283
    def mock_framework=(framework)
      mock_with framework
    end

mock_with(framework) click to toggle source

Sets the mock framework adapter module.

`framework` can be a Symbol or a Module.

Given any of `:rspec`, `:mocha`, `:flexmock`, or `:rr`, configures the named framework.

Given `:nothing`, configures no framework. Use this if you don't use any mocking framework to save a little bit of overhead.

Given a Module, includes that module in every example group. The module should adhere to RSpec's mock framework adapter API:

    setup_mocks_for_rspec
      - called before each example

    verify_mocks_for_rspec
      - called after each example. Framework should raise an exception
        when expectations fail

    teardown_mocks_for_rspec
      - called after verify_mocks_for_rspec (even if there are errors)

If the module responds to `configuration` and `mock_with` receives a block, it will yield the configuration object to the block e.g.

    config.mock_with OtherMockFrameworkAdapter do |mod_config|
      mod_config.custom_setting = true
    end

    # File lib/rspec/core/configuration.rb, line 372
    def mock_with(framework)
      framework_module = case framework
      when Module
        framework
      when String, Symbol
        require case framework.to_s
                when /rspec/
                  'rspec/core/mocking/with_rspec'
                when /mocha/
                  'rspec/core/mocking/with_mocha'
                when /rr/
                  'rspec/core/mocking/with_rr'
                when /flexmock/
                  'rspec/core/mocking/with_flexmock'
                else
                  'rspec/core/mocking/with_absolutely_nothing'
                end
        RSpec::Core::MockFrameworkAdapter
      end

      new_name, old_name = [framework_module, @mock_framework].map do |mod|
        mod.respond_to?(:framework_name) ?  mod.framework_name : :unnamed
      end

      unless new_name == old_name
        assert_no_example_groups_defined(:mock_framework)
      end

      if block_given?
        raise "#{framework_module} must respond to `configuration` so that mock_with can yield it." unless framework_module.respond_to?(:configuration)
        yield framework_module.configuration
      end

      @mock_framework = framework_module
    end

order=(type) click to toggle source

@api

Sets the order and, if order is `'rand:<seed>'`, also sets the seed.

    # File lib/rspec/core/configuration.rb, line 929
    def order=(type)
      order_and_seed_from_order(type)
    end

order_examples(&block) click to toggle source

Sets a strategy by which to order examples.

@example

    RSpec.configure do |config|
      config.order_examples do |examples|
        examples.reverse
      end
    end

@see order_groups @see order_groups_and_examples @see order= @see seed=

    # File lib/rspec/core/configuration.rb, line 961
    def order_examples(&block)
      @example_ordering_block = block
      @order = "custom" unless built_in_orderer?(block)
    end

order_groups(&block) click to toggle source

Sets a strategy by which to order groups.

@example

    RSpec.configure do |config|
      config.order_groups do |groups|
        groups.reverse
      end
    end

@see order_examples @see order_groups_and_examples @see order= @see seed=

    # File lib/rspec/core/configuration.rb, line 984
    def order_groups(&block)
      @group_ordering_block = block
      @order = "custom" unless built_in_orderer?(block)
    end

order_groups_and_examples(&block) click to toggle source

Sets a strategy by which to order groups and examples.

@example

    RSpec.configure do |config|
      config.order_groups_and_examples do |groups_or_examples|
        groups_or_examples.reverse
      end
    end

@see order_groups @see order_examples @see order= @see seed=

    # File lib/rspec/core/configuration.rb, line 1007
    def order_groups_and_examples(&block)
      order_groups(&block)
      order_examples(&block)
    end

profile_examples() click to toggle source

@api private

Defaults `profile_examples` to 10 examples when `@profile_examples` is `true`.

    # File lib/rspec/core/configuration.rb, line 599
    def profile_examples
      profile = value_for(:profile_examples, @profile_examples)
      if profile && !profile.is_a?(Integer)
        10
      else
        profile
      end
    end

randomize?() click to toggle source

    # File lib/rspec/core/configuration.rb, line 933
    def randomize?
      order.to_s.match(/rand/)
    end

reporter() click to toggle source

    # File lib/rspec/core/configuration.rb, line 587
    def reporter
      @reporter ||= begin
                      add_formatter('progress') if formatters.empty?
                      add_formatter(RSpec::Core::Formatters::DeprecationFormatter, deprecation_stream, output_stream)
                      Reporter.new(*formatters)
                    end
    end

requires=(paths) click to toggle source

    # File lib/rspec/core/configuration.rb, line 511
    def requires=(paths)
      RSpec.deprecate("RSpec::Core::Configuration#requires=(paths)",
                      :replacement => "paths.each {|path| require path}")
      paths.map {|path| require path}
      @requires += paths
    end

reset() click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 228
    def reset
      @reporter = nil
      @formatters.clear
    end

safe_extend(mod, host) click to toggle source

    # File lib/rspec/core/configuration.rb, line 873
    def safe_extend(mod, host)
      host.extend(mod) unless (class << host; self; end) < mod
    end

safe_include(mod, host) click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 859
    def safe_include(mod, host)
      host.send(:include,mod) unless host < mod
    end

seed=(seed) click to toggle source

@api

Sets the seed value and sets `order='rand'`

    # File lib/rspec/core/configuration.rb, line 922
    def seed=(seed)
      order_and_seed_from_seed(seed)
    end

setup_load_path_and_require(paths) click to toggle source

@private

    # File lib/rspec/core/configuration.rb, line 864
    def setup_load_path_and_require(paths)
      directories = ['lib', default_path].select { |p| File.directory? p }
      RSpec::Core::RubyProject.add_to_load_path(*directories)
      paths.each {|path| require path}
      @requires += paths
    end

warnings() click to toggle source

    # File lib/rspec/core/configuration.rb, line 1017
    def warnings
      $VERBOSE
    end

warnings=(value) click to toggle source

Set Ruby warnings on or off

    # File lib/rspec/core/configuration.rb, line 1013
    def warnings= value
      $VERBOSE = !!value
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.