inherit_from:
  - .rubocop_rspec_base.yml
  - .rubocop_todo.yml

AllCops:
  Exclude:
    # This code was taken from the backports gem. We don't want to mess with it.
    - lib/rspec/core/backport_random.rb
    - tmp/**/*

Layout/AccessModifierIndentation:
  Enabled: false

# This should go down over time.
Layout/LineLength:
  Max: 130
  Exclude:
    - features/**/*
    - spec/**/*

# This could change depending of the style used
Layout/MultilineOperationIndentation:
  Enabled: false

Layout/SpaceAroundOperators:
  AllowForAlignment: true

Lint/LiteralInInterpolation:
  Enabled: false

Lint/IneffectiveAccessModifier:
  Exclude:
    - lib/rspec/core/memoized_helpers.rb # Fixing this file was too much of a diff

Lint/NonLocalExitFromIterator:
  Enabled: false

Lint/RedundantCopDisableDirective:
  Enabled: false

Lint/SelfAssignment:
  Exclude:
    - spec/rspec/core/configuration_spec.rb

Lint/SuppressedException:
  Exclude:
    - lib/rspec/core/example.rb
    - lib/rspec/core/mocking_adapters/mocha.rb
    - lib/rspec/core/runner.rb
    - lib/rspec/core/test_unit_assertions_adapter.rb

# This should go down over time.
Metrics/AbcSize:
  Max: 40

Metrics/BlockLength:
  Max: 206
  Exclude:
    - spec/**/*.rb

# This should go down over time.
Metrics/ClassLength:
  Max: 330

# This should go down over time.
Metrics/CyclomaticComplexity:
  Max: 12

# This should go down over time.
Metrics/MethodLength:
  Max: 39
  Exclude:
    - spec/support/formatter_support.rb

Metrics/ModuleLength:
  Exclude:
    - spec/**/*

Metrics/PerceivedComplexity:
  Max: 15

Style/AccessModifierDeclarations:
  Enabled: false

Style/BarePercentLiterals:
  Enabled: false

# Exclude the default spec_helper to make it easier to uncomment out
# default settings (for both users and the Cucumber suite).
Style/BlockComments:
  Exclude:
    - lib/rspec/core/project_initializer/spec/spec_helper.rb

# Not sure what to do with this rule yet.
Style/ClassAndModuleChildren:
  Exclude:
    - lib/rspec/core/formatters.rb
    - lib/rspec/core/notifications.rb
    - lib/rspec/core/option_parser.rb
    - lib/rspec/core/reporter.rb

# This can be addressed once Ruby 1.8 support is removed.
Style/Encoding:
  Enabled: false

Style/HashEachMethods:
  Exclude:
    - lib/rspec/core/metadata_filter.rb

Style/RaiseArgs:
  Exclude:
    - lib/rspec/core/configuration.rb
    - lib/rspec/core/hooks.rb
    - lib/rspec/core/option_parser.rb
    - lib/rspec/core/pending.rb
    - spec/rspec/core/formatters/base_text_formatter_spec.rb

Style/RedundantBegin:
  Exclude:
    - lib/rspec/core/configuration.rb
    - lib/rspec/core/example_group.rb

Style/RegexpLiteral:
  Enabled: false

Style/StringConcatenation:
  Exclude:
    - features/step_definitions/additional_cli_steps.rb
    - features/step_definitions/core_standalone_steps.rb
    - lib/rspec/core/bisect/utilities.rb
    - lib/rspec/core/did_you_mean.rb
    - lib/rspec/core/example_group.rb
    - lib/rspec/core/notifications.rb
    - lib/rspec/core/option_parser.rb
    - spec/rspec/core/configuration_spec.rb
    - spec/rspec/core/did_you_mean_spec.rb
    - spec/rspec/core/formatters/base_text_formatter_spec.rb
    - spec/rspec/core/memoized_helpers_spec.rb
    - spec/rspec/core/option_parser_spec.rb
    - spec/support/formatter_support.rb
    - spec/support/spec_files.rb

# We don't care about single vs double quotes.
Style/StringLiteralsInInterpolation:
  Enabled: false

Style/SymbolProc:
  Enabled: false
