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