.rubocop.yml
# The behavior of RuboCop can be controlled via the .rubocop.yml
# configuration file. It makes it possible to enable/disable
# certain cops (checks) and to alter their behavior if they accept
# any parameters. The file can be placed either in your home
# directory or in some project directory.
#
# RuboCop will start looking for the configuration file in the directory
# where the inspected file is and continue its way up to the root directory.
#
# See https://github.com/rubocop-hq/rubocop/blob/master/manual/configuration.md
require:
- rubocop-rake
- rubocop-rspec
AllCops:
Exclude:
- 'bin/*'
NewCops: enable
TargetRubyVersion: 2.4
Bundler/GemComment:
Enabled: true
Bundler/OrderedGems:
TreatCommentsAsGroupSeparators: true
RSpec/Capybara/FeatureMethods:
Enabled: true
EnabledMethods:
- feature
- given
- background
- scenario
Layout/ArgumentAlignment:
Enabled: true
Layout/BlockAlignment:
Enabled: true
Layout/BlockEndNewline:
Enabled: true
Layout/ClassStructure:
Enabled: true
Categories:
module_inclusion:
- include
- prepend
- extend
ExpectedOrder:
- module_inclusion
- constants
- public_class_methods
- initializer
- instance_methods
- protected_methods
- private_methods
Layout/ClosingParenthesisIndentation:
Enabled: true
Layout/EndOfLine:
EnforcedStyle: lf
Layout/EmptyLineAfterGuardClause:
Enabled: false
Layout/EmptyLinesAroundAttributeAccessor:
Enabled: true
Layout/FirstArgumentIndentation:
Enabled: true
Layout/FirstArrayElementIndentation:
Enabled: true
EnforcedStyle: consistent
IndentationWidth: 2
Layout/FirstHashElementIndentation:
Enabled: true
EnforcedStyle: consistent
Layout/FirstParameterIndentation:
Enabled: true
EnforcedStyle: consistent
Layout/HashAlignment:
Enabled: true
Layout/IndentationWidth:
Enabled: true
Width: 2
Layout/LineLength:
AllowHeredoc: true
AllowURI: true
AutoCorrect: false
Max: 120
URISchemes:
- http
- https
- mysql
- mysql2
- postgres
- postgresql
Layout/MultilineArrayLineBreaks:
Enabled: true
Layout/MultilineBlockLayout:
Enabled: true
Layout/MultilineHashBraceLayout:
Enabled: true
Layout/MultilineHashKeyLineBreaks:
Enabled: true
Layout/MultilineMethodArgumentLineBreaks:
Enabled: true
Layout/MultilineMethodCallBraceLayout:
EnforcedStyle: new_line
Layout/ParameterAlignment:
Enabled: true
Layout/SpaceAroundMethodCallOperator:
Enabled: true
Lint/DeprecatedOpenSSLConstant:
Enabled: true
Lint/DuplicateElsifCondition:
Enabled: true
Lint/MixedRegexpCaptureTypes:
Enabled: true
Lint/RaiseException:
Enabled: true
Lint/StructNewOverride:
Enabled: true
Metrics/BlockLength:
Exclude:
- 'spec/**/*.rb'
- '**/*.gemspec'
Metrics/ClassLength:
Max: 150
Metrics/MethodLength:
Max: 15
Metrics/ModuleLength:
Exclude:
- 'spec/**/*.rb'
RSpec/ExampleLength:
Max: 10
RSpec/NestedGroups:
Max: 7
RSpec/PredicateMatcher:
Enabled: true
Strict: false
EnforcedStyle: inflected
Style/AccessorGrouping:
Enabled: true
Style/Alias:
EnforcedStyle: prefer_alias_method
Style/ArrayCoercion:
Enabled: false
Style/BisectedAttrAccessor:
Enabled: true
Style/BlockDelimiters:
Enabled: true
Style/CaseLikeIf:
Enabled: true
Style/DoubleNegation:
Enabled: false
Style/ExponentialNotation:
Enabled: true
Style/FrozenStringLiteralComment:
Enabled: false
Style/HashAsLastArrayItem:
Enabled: true
Style/HashEachMethods:
Enabled: true
Style/HashLikeCase:
Enabled: true
Style/HashSyntax:
Enabled: true
EnforcedStyle: hash_rockets
Style/HashTransformKeys:
Enabled: true
Style/HashTransformValues:
Enabled: true
Style/RedundantAssignment:
Enabled: true
Style/RedundantFetchBlock:
Enabled: true
Style/RedundantFileExtensionInRequire:
Enabled: true
Style/RedundantRegexpCharacterClass:
Enabled: true
Style/RedundantRegexpEscape:
Enabled: true
Style/SignalException:
EnforcedStyle: semantic
Style/SlicingWithRange:
Enabled: true