config/default.yml in rubocop-0.47.1 vs config/default.yml in rubocop-0.48.0
- old
+ new
@@ -49,15 +49,21 @@
# Additional cops that do not reference a style guide rule may be enabled by
# default. Change behavior by overriding `StyleGuideCopsOnly`, or by giving
# the `--only-guide-cops` option.
StyleGuideCopsOnly: false
# All cops except the ones in disabled.yml are enabled by default. Change
- # this behavior by overriding `DisabledByDefault`. When `DisabledByDefault` is
- # `true`, all cops in the default configuration are disabled, and only cops
- # in user configuration are enabled. This makes cops opt-in instead of
- # opt-out. Note that when `DisabledByDefault` is `true`, cops in user
- # configuration will be enabled even if they don't set the Enabled parameter.
+ # this behavior by overriding either `DisabledByDefault` or `EnabledByDefault`.
+ # When `DisabledByDefault` is `true`, all cops in the default configuration
+ # are disabled, and only cops in user configuration are enabled. This makes
+ # cops opt-in instead of opt-out. Note that when `DisabledByDefault` is `true`,
+ # cops in user configuration will be enabled even if they don't set the
+ # Enabled parameter.
+ # When `EnabledByDefault` is `true`, all cops, even those in disabled.yml,
+ # are enabled by default. Cops can still be disabled in user configuration.
+ # Note that it is invalid to set both EnabledByDefault and DisabledByDefault
+ # to true in the same configuration.
+ EnabledByDefault: false
DisabledByDefault: false
# Enables the result cache if `true`. Can be overridden by the `--cache` command
# line option.
UseCache: true
# Threshold for how many files can be stored in the result cache before some
@@ -80,10 +86,11 @@
# run on? (If there is more than one, set this to the lowest version.)
# If a value is specified for TargetRubyVersion then it is used.
# Else if .ruby-version exists and it contains an MRI version it is used.
# Otherwise we fallback to the oldest officially supported Ruby version (2.1).
TargetRubyVersion: ~
+ TargetRailsVersion: 5.0
# Indent private/protected/public as deep as method definitions
Style/AccessModifierIndentation:
EnforcedStyle: indent
SupportedStyles:
@@ -418,11 +425,11 @@
- trailing
# Warn on empty else statements
# empty - warn only on empty `else`
# nil - warn on `else` with nil in it
-# both - warn on empty `else` and `else` with nil in it
+# both - warn on empty `else` and `else` with `nil` in it
Style/EmptyElse:
EnforcedStyle: both
SupportedStyles:
- empty
- nil
@@ -431,10 +438,12 @@
# Use empty lines between defs.
Style/EmptyLineBetweenDefs:
# If `true`, this parameter means that single line method definitions don't
# need an empty line between them.
AllowAdjacentOneLineDefs: false
+ # Can be array to specify minimum and maximum number of empty lines, e.g. [1, 2]
+ NumberOfEmptyLines: 1
Style/EmptyLinesAroundBlockBody:
EnforcedStyle: no_empty_lines
SupportedStyles:
- empty_lines
@@ -471,10 +480,20 @@
- when_needed
- always
- never
AutoCorrectEncodingComment: '# encoding: utf-8'
+Style/EndOfLine:
+ # The `native` style means that CR+LF (Carriage Return + Line Feed) is
+ # enforced on Windows, and LF is enforced on other platforms. The other styles
+ # mean LF and CR+LF, respectively.
+ EnforcedStyle: native
+ SupportedStyles:
+ - native
+ - lf
+ - crlf
+
Style/ExtraSpacing:
# When true, allows most uses of extra spacing if the intent is to align
# things with the previous or next line, not counting empty lines or comment
# lines.
AllowForAlignment: true
@@ -630,10 +649,11 @@
- rails
Style/IndentationWidth:
# Number of spaces for each indentation level.
Width: 2
+ IgnoredPatterns: []
# Checks the indentation of the first element in an array literal.
Style/IndentArray:
# The value `special_inside_parentheses` means that array literals with
# brackets that have their opening bracket on the same line as a surrounding
@@ -681,10 +701,41 @@
- align_braces
# By default, the indentation width from `Style/IndentationWidth` is used
# But it can be overridden by setting this parameter
IndentationWidth: ~
+Style/IndentHeredoc:
+ EnforcedStyle: auto_detection
+ SupportedStyles:
+ - auto_detection
+ - squiggly
+ - active_support
+ - powerpack
+ - unindent
+
+Style/InverseMethods:
+ Enabled: true
+ # `InverseMethods` are methods that can be inverted by a not (`not` or `!`)
+ # The relationship of inverse methods only needs to be defined in one direction.
+ # Keys and values both need to be defined as symbols.
+ InverseMethods:
+ :any?: :none?
+ :even?: :odd?
+ :==: :!=
+ :=~: :!~
+ :<: :>=
+ :>: :<=
+ # `ActiveSupport` defines some common inverse methods. They are listed below,
+ # and not enabled by default.
+ #:present?: :blank?,
+ #:include?: :exclude?
+ # `InverseBlocks` are methods that are inverted by inverting the return
+ # of the block that is passed to the method
+ InverseBlocks:
+ :select: :reject
+ :select!: :reject!
+
Style/Lambda:
EnforcedStyle: line_count_dependent
SupportedStyles:
- line_count_dependent
- lambda
@@ -700,57 +751,37 @@
EnforcedStyle: call
SupportedStyles:
- call
- braces
-Style/Next:
- # With `always` all conditions at the end of an iteration needs to be
- # replaced by next - with `skip_modifier_ifs` the modifier if like this one
- # are ignored: [1, 2].each { |a| return 'yes' if a == 1 }
- EnforcedStyle: skip_modifier_ifs
- # `MinBodyLength` defines the number of lines of the a body of an `if` or `unless`
- # needs to have to trigger this cop
- MinBodyLength: 3
- SupportedStyles:
- - skip_modifier_ifs
- - always
+Style/MethodCallWithArgsParentheses:
+ IgnoreMacros: true
+ IgnoredMethods: []
-Style/NonNilCheck:
- # With `IncludeSemanticChanges` set to `true`, this cop reports offenses for
- # `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is
- # **usually** OK, but might change behavior.
- #
- # With `IncludeSemanticChanges` set to `false`, this cop does not report
- # offenses for `!x.nil?` and does no changes that might change behavior.
- IncludeSemanticChanges: false
-
-Style/NumericPredicate:
- EnforcedStyle: predicate
- SupportedStyles:
- - predicate
- - comparison
- # Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
- # false positives.
- Exclude:
- - 'spec/**/*'
-
Style/MethodDefParentheses:
EnforcedStyle: require_parentheses
SupportedStyles:
- require_parentheses
- require_no_parentheses
- require_no_parentheses_except_multiline
-Style/MethodCallWithArgsParentheses:
- IgnoredMethods: []
-
Style/MethodName:
EnforcedStyle: snake_case
SupportedStyles:
- snake_case
- camelCase
+# Checks the grouping of mixins (`include`, `extend`, `prepend`) in `class` and
+# `module` bodies.
+Style/MixinGrouping:
+ EnforcedStyle: separated
+ SupportedStyles:
+ # separated: each mixed in module goes in a separate statement.
+ # grouped: mixed in modules are grouped into a single statement.
+ - separated
+ - grouped
+
Style/ModuleFunction:
EnforcedStyle: module_function
SupportedStyles:
- module_function
- extend_self
@@ -791,10 +822,16 @@
# same_line: closing brace is always on same line as last element
- symmetrical
- new_line
- same_line
+Style/MultilineMemoization:
+ EnforcedStyle: keyword
+ SupportedStyles:
+ - keyword
+ - braces
+
Style/MultilineMethodCallBraceLayout:
EnforcedStyle: symmetrical
SupportedStyles:
# symmetrical: closing brace is positioned in same way as opening brace
# new_line: closing brace is always on a new line
@@ -830,19 +867,60 @@
- indented
# By default, the indentation width from `Style/IndentationWidth` is used
# But it can be overridden by setting this parameter
IndentationWidth: ~
+Style/NegatedIf:
+ EnforcedStyle: both
+ SupportedStyles:
+ # both: prefix and postfix negated `if` should both use `unless`
+ # prefix: only use `unless` for negated `if` statements positioned before the body of the statement
+ # postfix: only use `unless` for negated `if` statements positioned after the body of the statement
+ - both
+ - prefix
+ - postfix
+
+Style/Next:
+ # With `always` all conditions at the end of an iteration needs to be
+ # replaced by next - with `skip_modifier_ifs` the modifier if like this one
+ # are ignored: [1, 2].each { |a| return 'yes' if a == 1 }
+ EnforcedStyle: skip_modifier_ifs
+ # `MinBodyLength` defines the number of lines of the a body of an `if` or `unless`
+ # needs to have to trigger this cop
+ MinBodyLength: 3
+ SupportedStyles:
+ - skip_modifier_ifs
+ - always
+
+Style/NonNilCheck:
+ # With `IncludeSemanticChanges` set to `true`, this cop reports offenses for
+ # `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which is
+ # **usually** OK, but might change behavior.
+ #
+ # With `IncludeSemanticChanges` set to `false`, this cop does not report
+ # offenses for `!x.nil?` and does no changes that might change behavior.
+ IncludeSemanticChanges: false
+
Style/NumericLiterals:
MinDigits: 5
Style/NumericLiteralPrefix:
EnforcedOctalStyle: zero_with_o
SupportedOctalStyles:
- zero_with_o
- zero_only
+Style/NumericPredicate:
+ EnforcedStyle: predicate
+ SupportedStyles:
+ - predicate
+ - comparison
+ # Exclude RSpec specs because assertions like `expect(1).to be > 0` cause
+ # false positives.
+ Exclude:
+ - 'spec/**/*'
+
Style/OptionHash:
# A list of parameter names that will be flagged by this cop.
SuspiciousParamNames:
- options
- opts
@@ -853,21 +931,16 @@
# Allow safe assignment in conditions.
Style/ParenthesesAroundCondition:
AllowSafeAssignment: true
Style/PercentLiteralDelimiters:
+ # Specify the default preferred delimiter for all types with the 'default' key
+ # Override individual delimiters (even with default specified) by specifying
+ # an individual key
PreferredDelimiters:
- '%': ()
- '%i': ()
- '%I': ()
- '%q': ()
- '%Q': ()
+ default: ()
'%r': '{}'
- '%s': ()
- '%w': ()
- '%W': ()
- '%x': ()
Style/PercentQLiterals:
EnforcedStyle: lower_case_q
SupportedStyles:
- lower_case_q # Use `%q` when possible, `%Q` when necessary
@@ -949,53 +1022,10 @@
- elem
Style/SingleLineMethods:
AllowIfMethodIsEmpty: true
-Style/SpaceBeforeFirstArg:
- # When `true`, allows most uses of extra spacing if the intent is to align
- # things with the previous or next line, not counting empty lines or comment
- # lines.
- AllowForAlignment: true
-
-Style/SpecialGlobalVars:
- EnforcedStyle: use_english_names
- SupportedStyles:
- - use_perl_names
- - use_english_names
-
-Style/StabbyLambdaParentheses:
- EnforcedStyle: require_parentheses
- SupportedStyles:
- - require_parentheses
- - require_no_parentheses
-
-Style/StringLiterals:
- EnforcedStyle: single_quotes
- SupportedStyles:
- - single_quotes
- - double_quotes
- # If `true`, strings which span multiple lines using `\` for continuation must
- # use the same type of quotes on each line.
- ConsistentQuotesInMultiline: false
-
-Style/StringLiteralsInInterpolation:
- EnforcedStyle: single_quotes
- SupportedStyles:
- - single_quotes
- - double_quotes
-
-Style/StringMethods:
- # Mapping from undesired method to desired_method
- # e.g. to use `to_sym` over `intern`:
- #
- # StringMethods:
- # PreferredMethods:
- # intern: to_sym
- PreferredMethods:
- intern: to_sym
-
Style/SpaceAroundBlockParameters:
EnforcedStyleInsidePipes: no_space
SupportedStylesInsidePipes:
- space
- no_space
@@ -1016,20 +1046,26 @@
EnforcedStyle: space
SupportedStyles:
- space
- no_space
+Style/SpaceBeforeFirstArg:
+ # When `true`, allows most uses of extra spacing if the intent is to align
+ # things with the previous or next line, not counting empty lines or comment
+ # lines.
+ AllowForAlignment: true
+
Style/SpaceInsideBlockBraces:
EnforcedStyle: space
SupportedStyles:
- space
- no_space
EnforcedStyleForEmptyBraces: no_space
SupportedStylesForEmptyBraces:
- space
- no_space
- # Space between { and |. Overrides EnforcedStyle if there is a conflict.
+ # Space between `{` and `|`. Overrides `EnforcedStyle` if there is a conflict.
SpaceBeforeBlockParameters: true
Style/SpaceInsideHashLiteralBraces:
EnforcedStyle: space
SupportedStyles:
@@ -1047,10 +1083,47 @@
EnforcedStyle: no_space
SupportedStyles:
- space
- no_space
+Style/SpecialGlobalVars:
+ EnforcedStyle: use_english_names
+ SupportedStyles:
+ - use_perl_names
+ - use_english_names
+
+Style/StabbyLambdaParentheses:
+ EnforcedStyle: require_parentheses
+ SupportedStyles:
+ - require_parentheses
+ - require_no_parentheses
+
+Style/StringLiterals:
+ EnforcedStyle: single_quotes
+ SupportedStyles:
+ - single_quotes
+ - double_quotes
+ # If `true`, strings which span multiple lines using `\` for continuation must
+ # use the same type of quotes on each line.
+ ConsistentQuotesInMultiline: false
+
+Style/StringLiteralsInInterpolation:
+ EnforcedStyle: single_quotes
+ SupportedStyles:
+ - single_quotes
+ - double_quotes
+
+Style/StringMethods:
+ # Mapping from undesired method to desired_method
+ # e.g. to use `to_sym` over `intern`:
+ #
+ # StringMethods:
+ # PreferredMethods:
+ # intern: to_sym
+ PreferredMethods:
+ intern: to_sym
+
Style/SymbolArray:
EnforcedStyle: percent
SupportedStyles:
- percent
- brackets
@@ -1096,11 +1169,11 @@
SupportedStylesForMultiline:
- comma
- consistent_comma
- no_comma
-# TrivialAccessors requires exact name matches and doesn't allow
+# `TrivialAccessors` requires exact name matches and doesn't allow
# predicated methods by default.
Style/TrivialAccessors:
# When set to `false` the cop will suggest the use of accessor methods
# in situations like:
#
@@ -1169,29 +1242,30 @@
# whose element count is greater than or equal to `MinSize`.
MinSize: 0
# The regular expression `WordRegex` decides what is considered a word.
WordRegex: !ruby/regexp '/\A[\p{Word}\n\t]+\z/'
-##################### Metrics ##################################
+#################### Metrics ###############################
Metrics/AbcSize:
# The ABC size is a calculated magnitude, so this number can be an Integer or
# a Float.
Max: 15
+Metrics/BlockLength:
+ CountComments: false # count full line comments?
+ Max: 25
+ ExcludedMethods: []
+
Metrics/BlockNesting:
CountBlocks: false
Max: 3
Metrics/ClassLength:
CountComments: false # count full line comments?
Max: 100
-Metrics/ModuleLength:
- CountComments: false # count full line comments?
- Max: 100
-
# Avoid complex methods.
Metrics/CyclomaticComplexity:
Max: 6
Metrics/LineLength:
@@ -1213,23 +1287,22 @@
Metrics/MethodLength:
CountComments: false # count full line comments?
Max: 10
-Metrics/BlockLength:
+Metrics/ModuleLength:
CountComments: false # count full line comments?
- Max: 25
- ExcludedMethods: []
+ Max: 100
Metrics/ParameterLists:
Max: 5
CountKeywordArgs: true
Metrics/PerceivedComplexity:
Max: 7
-##################### Lint ##################################
+#################### Lint ##################################
# Allow safe assignment in conditions.
Lint/AssignmentInCondition:
AllowSafeAssignment: true
@@ -1244,10 +1317,21 @@
SupportedStylesAlignWith:
- either
- start_of_block
- start_of_line
+Lint/DefEndAlignment:
+ # The value `def` means that `end` should be aligned with the def keyword.
+ # The value `start_of_line` means that `end` should be aligned with method
+ # calls like `private`, `public`, etc, if present in front of the `def`
+ # keyword on the same line.
+ EnforcedStyleAlignWith: start_of_line
+ SupportedStylesAlignWith:
+ - start_of_line
+ - def
+ AutoCorrect: false
+
# Align ends correctly.
Lint/EndAlignment:
# The value `keyword` means that `end` should be aligned with the matching
# keyword (`if`, `while`, etc.).
# The value `variable` means that in assignments, `end` should be aligned
@@ -1260,45 +1344,46 @@
- keyword
- variable
- start_of_line
AutoCorrect: false
-Lint/DefEndAlignment:
- # The value `def` means that `end` should be aligned with the def keyword.
- # The value `start_of_line` means that `end` should be aligned with method
- # calls like `private`, `public`, etc, if present in front of the `def`
- # keyword on the same line.
- EnforcedStyleAlignWith: start_of_line
- SupportedStylesAlignWith:
- - start_of_line
- - def
- AutoCorrect: false
-
Lint/InheritException:
# The default base class in favour of `Exception`.
EnforcedStyle: runtime_error
SupportedStyles:
- runtime_error
- standard_error
+Lint/SafeNavigationChain:
+ Whitelist:
+ - present?
+ - blank?
+ - presence
+ - try
+
# Checks for unused block arguments
Lint/UnusedBlockArgument:
IgnoreEmptyBlocks: true
AllowUnusedKeywordArguments: false
# Checks for unused method arguments.
Lint/UnusedMethodArgument:
AllowUnusedKeywordArguments: false
IgnoreEmptyMethods: true
-##################### Performance ############################
+#################### Performance ###########################
+Performance/DoubleStartEndWith:
+ # Used to check for `starts_with?` and `ends_with?`.
+ # These methods are defined by `ActiveSupport`.
+ IncludeActiveSupportAliases: false
+
Performance/RedundantMerge:
# Max number of key-value pairs to consider an offense
MaxKeyValuePairs: 2
-##################### Rails ##################################
+#################### Rails #################################
Rails/ActionFilter:
EnforcedStyle: action
SupportedStyles:
- action
@@ -1411,5 +1496,8 @@
- update_counters
Rails/Validation:
Include:
- app/models/**/*.rb
+
+Bundler/OrderedGems:
+ TreatCommentsAsGroupSeparators: true