config/enabled.yml in rubocop-0.43.0 vs config/enabled.yml in rubocop-0.44.0

- old
+ new

@@ -1,27 +1,27 @@ # These are all the cops that are enabled in the default configuration. Style/AccessModifierIndentation: Description: Check indentation of private/protected visibility modifiers. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected' + StyleGuide: '#indent-public-private-protected' Enabled: true Style/AccessorMethodName: Description: Check the naming of accessor methods for get_/set_. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#accessor_mutator_method_names' + StyleGuide: '#accessor_mutator_method_names' Enabled: true Style/Alias: Description: 'Use alias instead of alias_method.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method' + StyleGuide: '#alias-method' Enabled: true Style/AlignArray: Description: >- Align the elements of an array literal if they span more than one line. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays' + StyleGuide: '#align-multiline-arrays' Enabled: true Style/AlignHash: Description: >- Align the elements of a hash literal if they span more than @@ -30,51 +30,51 @@ Style/AlignParameters: Description: >- Align the parameters of a method call if they span more than one line. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent' + StyleGuide: '#no-double-indent' Enabled: true Style/AndOr: Description: 'Use &&/|| instead of and/or.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-and-or-or' + StyleGuide: '#no-and-or-or' Enabled: true Style/ArrayJoin: Description: 'Use Array#join instead of Array#*.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join' + StyleGuide: '#array-join' Enabled: true Style/AsciiComments: Description: 'Use only ascii symbols in comments.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments' + StyleGuide: '#english-comments' Enabled: true Style/AsciiIdentifiers: Description: 'Use only ascii symbols in identifiers.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers' + StyleGuide: '#english-identifiers' Enabled: true Style/Attr: Description: 'Checks for uses of Module#attr.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr' + StyleGuide: '#attr' Enabled: true Style/BeginBlock: Description: 'Avoid the use of BEGIN blocks.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-BEGIN-blocks' + StyleGuide: '#no-BEGIN-blocks' Enabled: true Style/BarePercentLiterals: Description: 'Checks if usage of %() or %Q() matches configuration.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q-shorthand' + StyleGuide: '#percent-q-shorthand' Enabled: true Style/BlockComments: Description: 'Do not use block comments.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-block-comments' + StyleGuide: '#no-block-comments' Enabled: true Style/BlockEndNewline: Description: 'Put end statement of multiline block on its own line.' Enabled: true @@ -82,35 +82,35 @@ Style/BlockDelimiters: Description: >- Avoid using {...} for multi-line blocks (multiline chaining is always ugly). Prefer {...} over do...end for single-line blocks. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks' + StyleGuide: '#single-line-blocks' Enabled: true Style/BracesAroundHashParameters: Description: 'Enforce braces style around hash parameters.' Enabled: true Style/CaseEquality: Description: 'Avoid explicit use of the case equality operator(===).' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality' + StyleGuide: '#no-case-equality' Enabled: true Style/CaseIndentation: Description: 'Indentation of when in a case/when/[else/]end.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-when-to-case' + StyleGuide: '#indent-when-to-case' Enabled: true Style/CharacterLiteral: Description: 'Checks for uses of character literals.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals' + StyleGuide: '#no-character-literals' Enabled: true Style/ClassAndModuleCamelCase: Description: 'Use CamelCase for classes and modules.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#camelcase-classes' + StyleGuide: '#camelcase-classes' Enabled: true Style/ClassAndModuleChildren: Description: 'Checks style of children classes and modules.' Enabled: true @@ -119,37 +119,37 @@ Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.' Enabled: true Style/ClassMethods: Description: 'Use self when defining module/class methods.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#def-self-class-methods' + StyleGuide: '#def-self-class-methods' Enabled: true Style/ClassVars: Description: 'Avoid the use of class variables.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars' + StyleGuide: '#no-class-vars' Enabled: true Style/ClosingParenthesisIndentation: Description: 'Checks the indentation of hanging closing parentheses.' Enabled: true Style/ColonMethodCall: Description: 'Do not use :: for method call.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons' + StyleGuide: '#double-colons' Enabled: true Style/CommandLiteral: Description: 'Use `` or %x around command literals.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-x' + StyleGuide: '#percent-x' Enabled: true Style/CommentAnnotation: Description: >- Checks formatting of special comments (TODO, FIXME, OPTIMIZE, HACK, REVIEW). - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords' + StyleGuide: '#annotate-keywords' Enabled: true Style/CommentIndentation: Description: 'Indentation of comments.' Enabled: true @@ -161,38 +161,33 @@ of assigning that variable inside of each branch. Enabled: true Style/ConstantName: Description: 'Constants should use SCREAMING_SNAKE_CASE.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#screaming-snake-case' + StyleGuide: '#screaming-snake-case' Enabled: true Style/DefWithParentheses: Description: 'Use def with parentheses when there are arguments.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens' + StyleGuide: '#method-parens' Enabled: true -Style/PreferredHashMethods: - Description: 'Checks use of `has_key?` and `has_value?` Hash methods.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-key' - Enabled: true - Style/Documentation: Description: 'Document classes and non-namespace modules.' Enabled: true Exclude: - 'spec/**/*' - 'test/**/*' Style/DotPosition: Description: 'Checks the position of the dot in multi-line method calls.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains' + StyleGuide: '#consistent-multi-line-chains' Enabled: true Style/DoubleNegation: Description: 'Checks for uses of double negation (!!).' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang' + StyleGuide: '#no-bang-bang' Enabled: true Style/EachForSimpleLoop: Description: >- Use `Integer#times` for a simple loop which iterates a fixed @@ -215,11 +210,11 @@ Description: 'Avoid empty condition in case statements.' Enabled: true Style/EmptyLineBetweenDefs: Description: 'Use empty lines between defs.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#empty-lines-between-methods' + StyleGuide: '#empty-lines-between-methods' Enabled: true Style/EmptyLines: Description: "Don't use several empty lines in a row." Enabled: true @@ -244,35 +239,35 @@ Description: "Keeps track of empty lines around method bodies." Enabled: true Style/EmptyLiteral: Description: 'Prefer literals to Array.new/Hash.new/String.new.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash' + StyleGuide: '#literal-array-hash' Enabled: true Style/EndBlock: Description: 'Avoid the use of END blocks.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-END-blocks' + StyleGuide: '#no-END-blocks' Enabled: true Style/EndOfLine: Description: 'Use Unix-style line endings.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#crlf' + StyleGuide: '#crlf' Enabled: true Style/EvenOdd: Description: 'Favor the use of Integer#even? && Integer#odd?' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods' + StyleGuide: '#predicate-methods' Enabled: true Style/ExtraSpacing: Description: 'Do not use unnecessary spacing.' Enabled: true Style/FileName: Description: 'Use snake_case for source file names.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files' + StyleGuide: '#snake-case-files' Enabled: true Style/FrozenStringLiteralComment: Description: >- Add the frozen_string_literal comment to the top of files @@ -288,69 +283,69 @@ Description: 'Checks the indentation of the first parameter in a method call.' Enabled: true Style/FlipFlop: Description: 'Checks for flip flops' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops' + StyleGuide: '#no-flip-flops' Enabled: true Style/For: Description: 'Checks use of for or each in multiline loops.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-for-loops' + StyleGuide: '#no-for-loops' Enabled: true Style/FormatString: Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf' + StyleGuide: '#sprintf' Enabled: true Style/GlobalVars: Description: 'Do not introduce global variables.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars' + StyleGuide: '#instance-vars' Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html' Enabled: true Style/GuardClause: Description: 'Check for conditionals that can be replaced with guard clauses' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals' + StyleGuide: '#no-nested-conditionals' Enabled: true Style/HashSyntax: Description: >- Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax { :a => 1, :b => 2 }. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-literals' + StyleGuide: '#hash-literals' Enabled: true Style/IfInsideElse: Description: 'Finds if nodes inside else, which can be converted to elsif.' Enabled: true Style/IfUnlessModifier: Description: >- Favor modifier if/unless usage when you have a single-line body. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier' + StyleGuide: '#if-as-a-modifier' Enabled: true Style/IfUnlessModifierOfIfUnless: Description: >- Avoid modifier if/unless usage on conditionals. Enabled: true Style/IfWithSemicolon: Description: 'Do not use if x; .... Use the ternary operator instead.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs' + StyleGuide: '#no-semicolon-ifs' Enabled: true Style/IndentationConsistency: Description: 'Keep indentation straight.' Enabled: true Style/IndentationWidth: Description: 'Use 2 spaces for indentation.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation' + StyleGuide: '#spaces-indentation' Enabled: true Style/IdenticalConditionalBranches: Description: >- Checks that conditional statements do not have an identical @@ -374,59 +369,59 @@ Description: 'Checks the indentation of the first key in a hash literal.' Enabled: true Style/InfiniteLoop: Description: 'Use Kernel#loop for infinite loops.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#infinite-loop' + StyleGuide: '#infinite-loop' Enabled: true Style/Lambda: Description: 'Use the new lambda literal syntax for single-line blocks.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line' + StyleGuide: '#lambda-multi-line' Enabled: true Style/LambdaCall: Description: 'Use lambda.call(...) instead of lambda.(...).' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call' + StyleGuide: '#proc-call' Enabled: true Style/LeadingCommentSpace: Description: 'Comments should start with a space.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-space' + StyleGuide: '#hash-space' Enabled: true Style/LineEndConcatenation: Description: >- Use \ instead of + or << to concatenate two string literals at line end. Enabled: true Style/MethodCallParentheses: Description: 'Do not use parentheses for method calls with no arguments.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-invocation-parens' + StyleGuide: '#method-invocation-parens' Enabled: true Style/MethodDefParentheses: Description: >- Checks if the method definitions have or don't have parentheses. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens' + StyleGuide: '#method-parens' Enabled: true Style/MethodName: Description: 'Use the configured style when naming methods.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars' + StyleGuide: '#snake-case-symbols-methods-vars' Enabled: true Style/MethodMissing: Description: 'Avoid using `method_missing`.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-method-missing' + StyleGuide: '#no-method-missing' Enabled: true Style/ModuleFunction: Description: 'Checks for usage of `extend self` in modules.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function' + StyleGuide: '#module-function' Enabled: true Style/MultilineArrayBraceLayout: Description: >- Checks that the closing brace in an array literal is @@ -434,11 +429,11 @@ a new line. Enabled: true Style/MultilineBlockChain: Description: 'Avoid multi-line chains of blocks.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks' + StyleGuide: '#single-line-blocks' Enabled: true Style/MultilineBlockLayout: Description: 'Ensures newlines after multiline block do statements.' Enabled: true @@ -450,13 +445,17 @@ a new line. Enabled: true Style/MultilineIfThen: Description: 'Do not use then for multi-line if/unless.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-then' + StyleGuide: '#no-then' Enabled: true +Style/MultilineMemoization: + Description: 'Wrap multiline memoizations in a `begin` and `end` block.' + Enabled: true + Style/MultilineMethodCallBraceLayout: Description: >- Checks that the closing brace in a method call is either on the same line as the last method argument, or a new line. @@ -483,155 +482,164 @@ Style/MultilineTernaryOperator: Description: >- Avoid multi-line ?: (the ternary operator); use if/unless instead. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-ternary' + StyleGuide: '#no-multiline-ternary' Enabled: true Style/MutableConstant: Description: 'Do not assign mutable objects to constants.' Enabled: true Style/NegatedIf: Description: >- Favor unless over if for negative conditions (or control flow or). - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives' + StyleGuide: '#unless-for-negatives' Enabled: true Style/NegatedWhile: Description: 'Favor until over while for negative conditions.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives' + StyleGuide: '#until-for-negatives' Enabled: true Style/NestedModifier: Description: 'Avoid using nested modifiers.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-modifiers' + StyleGuide: '#no-nested-modifiers' Enabled: true Style/NestedParenthesizedCalls: Description: >- Parenthesize method calls which are nested inside the argument list of another parenthesized method call. Enabled: true Style/NestedTernaryOperator: Description: 'Use one expression per branch in a ternary operator.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-ternary' + StyleGuide: '#no-nested-ternary' Enabled: true Style/Next: Description: 'Use `next` to skip iteration instead of a condition at the end.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals' + StyleGuide: '#no-nested-conditionals' Enabled: true Style/NilComparison: Description: 'Prefer x.nil? to x == nil.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods' + StyleGuide: '#predicate-methods' Enabled: true Style/NonNilCheck: Description: 'Checks for redundant nil checks.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks' + StyleGuide: '#no-non-nil-checks' Enabled: true Style/Not: Description: 'Use ! instead of not.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not' + StyleGuide: '#bang-not-not' Enabled: true Style/NumericLiterals: Description: >- Add underscores to large numeric literals to improve their readability. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics' + StyleGuide: '#underscores-in-numerics' Enabled: true Style/NumericLiteralPrefix: Description: 'Use smallcase prefixes for numeric literals.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#numeric-literal-prefixes' + StyleGuide: '#numeric-literal-prefixes' Enabled: true Style/NumericPredicate: Description: >- Checks for the use of predicate- or comparison methods for numeric comparisons. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods' + StyleGuide: '#predicate-methods' + # This will change to a new method call which isn't guaranteed to be on the + # object. Switching these methods has to be done with knowledge of the types + # of the variables which rubocop doesn't have. + AutoCorrect: false Enabled: true Style/OneLineConditional: Description: >- Favor the ternary operator(?:) over if/then/else/end constructs. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator' + StyleGuide: '#ternary-operator' Enabled: true Style/OpMethod: Description: 'When defining binary operators, name the argument other.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg' + StyleGuide: '#other-arg' Enabled: true Style/OptionalArguments: Description: >- Checks for optional arguments that do not appear at the end of the argument list - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#optional-arguments' + StyleGuide: '#optional-arguments' Enabled: true Style/ParallelAssignment: Description: >- Check for simple usages of parallel assignment. It will only warn when the number of variables matches on both sides of the assignment. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parallel-assignment' + StyleGuide: '#parallel-assignment' Enabled: true Style/ParenthesesAroundCondition: Description: >- Don't use parentheses around the condition of an if/unless/while. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-parens-if' + StyleGuide: '#no-parens-if' Enabled: true Style/PercentLiteralDelimiters: Description: 'Use `%`-literal delimiters consistently' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces' + StyleGuide: '#percent-literal-braces' Enabled: true Style/PercentQLiterals: Description: 'Checks if uses of %Q/%q match the configured preference.' Enabled: true Style/PerlBackrefs: Description: 'Avoid Perl-style regex back references.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers' + StyleGuide: '#no-perl-regexp-last-matchers' Enabled: true Style/PredicateName: Description: 'Check the names of predicate methods.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark' + StyleGuide: '#bool-methods-qmark' Enabled: true +Style/PreferredHashMethods: + Description: 'Checks use of `has_key?` and `has_value?` Hash methods.' + StyleGuide: '#hash-key' + Enabled: true + Style/Proc: Description: 'Use proc instead of Proc.new.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc' + StyleGuide: '#proc' Enabled: true Style/RaiseArgs: Description: 'Checks the arguments passed to raise/fail.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages' + StyleGuide: '#exception-class-messages' Enabled: true Style/RedundantBegin: Description: "Don't use begin blocks when they are not needed." - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#begin-implicit' + StyleGuide: '#begin-implicit' Enabled: true Style/RedundantException: Description: "Checks for an obsolete RuntimeException argument in raise/fail." - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-runtimeerror' + StyleGuide: '#no-explicit-runtimeerror' Enabled: true Style/RedundantFreeze: Description: "Checks usages of Object#freeze on immutable objects." Enabled: true @@ -640,30 +648,30 @@ Description: "Checks for parentheses that seem not to serve any purpose." Enabled: true Style/RedundantReturn: Description: "Don't use return where it's not required." - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-return' + StyleGuide: '#no-explicit-return' Enabled: true Style/RedundantSelf: Description: "Don't use self where it's not needed." - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-self-unless-required' + StyleGuide: '#no-self-unless-required' Enabled: true Style/RegexpLiteral: Description: 'Use / or %r around regular expressions.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r' + StyleGuide: '#percent-r' Enabled: true Style/RescueEnsureAlignment: Description: 'Align rescues and ensures correctly.' Enabled: true Style/RescueModifier: Description: 'Avoid using rescue in its modifier form.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-rescue-modifiers' + StyleGuide: '#no-rescue-modifiers' Enabled: true Style/SafeNavigation: Description: >- This cop transforms usages of a method call safeguarded by @@ -673,64 +681,64 @@ Style/SelfAssignment: Description: >- Checks for places where self-assignment shorthand should have been used. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment' + StyleGuide: '#self-assignment' Enabled: true Style/Semicolon: Description: "Don't use semicolons to terminate expressions." - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon' + StyleGuide: '#no-semicolon' Enabled: true Style/SignalException: Description: 'Checks for proper usage of fail and raise.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#prefer-raise-over-fail' + StyleGuide: '#prefer-raise-over-fail' Enabled: true Style/SingleLineBlockParams: Description: 'Enforces the names of some block params.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks' + StyleGuide: '#reduce-blocks' Enabled: true Style/SingleLineMethods: Description: 'Avoid single-line methods.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods' + StyleGuide: '#no-single-line-methods' Enabled: true Style/SpaceBeforeFirstArg: Description: >- Checks that exactly one space is used between a method name and the first argument for method calls without parentheses. Enabled: true Style/SpaceAfterColon: Description: 'Use spaces after colons.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators' + StyleGuide: '#spaces-operators' Enabled: true Style/SpaceAfterComma: Description: 'Use spaces after commas.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators' + StyleGuide: '#spaces-operators' Enabled: true Style/SpaceAfterMethodName: Description: >- Do not put a space between a method name and the opening parenthesis in a method definition. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces' + StyleGuide: '#parens-no-spaces' Enabled: true Style/SpaceAfterNot: Description: Tracks redundant space after the ! operator. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-bang' + StyleGuide: '#no-space-bang' Enabled: true Style/SpaceAfterSemicolon: Description: 'Use spaces after semicolons.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators' + StyleGuide: '#spaces-operators' Enabled: true Style/SpaceBeforeBlockBraces: Description: >- Checks that the left block brace has or doesn't have space @@ -765,20 +773,20 @@ Style/SpaceAroundEqualsInParameterDefault: Description: >- Checks that the equals signs in parameter default assignments have or don't have surrounding space depending on configuration. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-around-equals' + StyleGuide: '#spaces-around-equals' Enabled: true Style/SpaceAroundKeyword: Description: 'Use a space around keywords if appropriate.' Enabled: true Style/SpaceAroundOperators: Description: 'Use a single space around operators.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators' + StyleGuide: '#spaces-operators' Enabled: true Style/SpaceInsideArrayPercentLiteral: Description: 'No unnecessary additional spaces between elements in %i/%w literals.' Enabled: true @@ -787,57 +795,57 @@ Description: 'No unnecessary spaces inside delimiters of %i/%w/%x literals.' Enabled: true Style/SpaceInsideBrackets: Description: 'No spaces after [ or before ].' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces' + StyleGuide: '#no-spaces-braces' Enabled: true Style/SpaceInsideHashLiteralBraces: Description: "Use spaces inside hash literal braces - or don't." - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators' + StyleGuide: '#spaces-operators' Enabled: true Style/SpaceInsideParens: Description: 'No spaces after ( or before ).' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces' + StyleGuide: '#no-spaces-braces' Enabled: true Style/SpaceInsideRangeLiteral: Description: 'No spaces inside range literals.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-inside-range-literals' + StyleGuide: '#no-space-inside-range-literals' Enabled: true Style/SpaceInsideStringInterpolation: Description: 'Checks for padding/surrounding spaces inside string interpolation.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#string-interpolation' + StyleGuide: '#string-interpolation' Enabled: true Style/SpecialGlobalVars: Description: 'Avoid Perl-style global variables.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms' + StyleGuide: '#no-cryptic-perlisms' Enabled: true Style/StabbyLambdaParentheses: Description: 'Check for the usage of parentheses around stabby lambda arguments.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#stabby-lambda-with-args' + StyleGuide: '#stabby-lambda-with-args' Enabled: true Style/StringLiterals: Description: 'Checks if uses of quotes match the configured preference.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals' + StyleGuide: '#consistent-string-literals' Enabled: true Style/StringLiteralsInInterpolation: Description: >- Checks if uses of quotes inside expressions in interpolated strings match the configured preference. Enabled: true Style/StructInheritance: Description: 'Checks for inheritance from Struct.new.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new' + StyleGuide: '#no-extend-struct-new' Enabled: true Style/SymbolLiteral: Description: 'Use plain symbols instead of string symbols when possible.' Enabled: true @@ -846,47 +854,47 @@ Description: 'Use symbols as procs instead of blocks when possible.' Enabled: true Style/Tab: Description: 'No hard tabs.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation' + StyleGuide: '#spaces-indentation' Enabled: true Style/TernaryParentheses: Description: 'Checks for use of parentheses around ternary conditions.' Enabled: true Style/TrailingBlankLines: Description: 'Checks trailing blank lines and final newline.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#newline-eof' + StyleGuide: '#newline-eof' Enabled: true Style/TrailingCommaInArguments: Description: 'Checks for trailing comma in argument lists.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-params-comma' + StyleGuide: '#no-trailing-params-comma' Enabled: true Style/TrailingCommaInLiteral: Description: 'Checks for trailing comma in array and hash literals.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas' + StyleGuide: '#no-trailing-array-commas' Enabled: true Style/TrailingWhitespace: Description: 'Avoid trailing whitespace.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-whitespace' + StyleGuide: '#no-trailing-whitespace' Enabled: true Style/TrivialAccessors: Description: 'Prefer attr_* methods to trivial readers/writers.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family' + StyleGuide: '#attr_family' Enabled: true Style/UnlessElse: Description: >- Do not use unless with else. Rewrite these with the positive case first. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-else-with-unless' + StyleGuide: '#no-else-with-unless' Enabled: true Style/UnneededCapitalW: Description: 'Checks for %W when interpolation is not needed.' Enabled: true @@ -895,11 +903,11 @@ Description: 'Checks for strings that are just an interpolated expression.' Enabled: true Style/UnneededPercentQ: Description: 'Checks for %q/%Q when single quotes or double quotes would do.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q' + StyleGuide: '#percent-q' Enabled: true Style/TrailingUnderscoreVariable: Description: >- Checks for the usage of unneeded trailing underscores at the @@ -909,42 +917,42 @@ Style/VariableInterpolation: Description: >- Don't interpolate global, instance and class variables directly in strings. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate' + StyleGuide: '#curlies-interpolate' Enabled: true Style/VariableName: Description: 'Use the configured style when naming variables.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars' + StyleGuide: '#snake-case-symbols-methods-vars' Enabled: true Style/VariableNumber: Description: 'Use the configured style when numbering variables.' Enabled: true Style/WhenThen: Description: 'Use when x then ... for one-line cases.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases' + StyleGuide: '#one-line-cases' Enabled: true Style/WhileUntilDo: Description: 'Checks for redundant do after while or until.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-while-do' + StyleGuide: '#no-multiline-while-do' Enabled: true Style/WhileUntilModifier: Description: >- Favor modifier while/until usage when you have a single-line body. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier' + StyleGuide: '#while-as-a-modifier' Enabled: true Style/WordArray: Description: 'Use %w or %W for arrays of words.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w' + StyleGuide: '#percent-w' Enabled: true Style/ZeroLengthPredicate: Description: 'Use #empty? when testing for objects of length 0.' Enabled: true @@ -958,11 +966,11 @@ Reference: 'http://c2.com/cgi/wiki?AbcMetric' Enabled: true Metrics/BlockNesting: Description: 'Avoid excessive block nesting' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count' + StyleGuide: '#three-is-the-number-thou-shalt-count' Enabled: true Metrics/ClassLength: Description: 'Avoid classes longer than 100 lines of code.' Enabled: true @@ -977,21 +985,25 @@ of test cases needed to validate a method. Enabled: true Metrics/LineLength: Description: 'Limit lines to 80 characters.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits' + StyleGuide: '#80-character-limits' Enabled: true Metrics/MethodLength: Description: 'Avoid methods longer than 10 lines of code.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods' + StyleGuide: '#short-methods' Enabled: true +Metrics/BlockLength: + Description: 'Avoid long blocks with many lines.' + Enabled: true + Metrics/ParameterLists: Description: 'Avoid parameter lists longer than three or four parameters.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params' + StyleGuide: '#too-many-params' Enabled: true Metrics/PerceivedComplexity: Description: >- A complexity metric geared towards measuring complexity for a @@ -1003,22 +1015,22 @@ Lint/AmbiguousOperator: Description: >- Checks for ambiguous operators in the first argument of a method invocation without parentheses. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-invocation-parens' + StyleGuide: '#method-invocation-parens' Enabled: true Lint/AmbiguousRegexpLiteral: Description: >- Checks for ambiguous regexp literals in the first argument of a method invocation without parentheses. Enabled: true Lint/AssignmentInCondition: Description: "Don't use assignment in conditions." - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition' + StyleGuide: '#safe-assignment-in-condition' Enabled: true Lint/BlockAlignment: Description: 'Align block ends correctly.' Enabled: true @@ -1029,11 +1041,11 @@ Lint/ConditionPosition: Description: >- Checks for condition placed in a confusing position relative to the keyword. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition' + StyleGuide: '#same-line-condition' Enabled: true Lint/Debugger: Description: 'Check for debugger calls.' Enabled: true @@ -1078,11 +1090,11 @@ Description: 'END blocks should not be placed inside method definitions.' Enabled: true Lint/EnsureReturn: Description: 'Do not use return in an ensure block.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-return-ensure' + StyleGuide: '#no-return-ensure' Enabled: true Lint/Eval: Description: 'The use of eval represents a serious security risk.' Enabled: true @@ -1097,11 +1109,11 @@ Description: 'The number of parameters to format/sprint must match the fields.' Enabled: true Lint/HandleExceptions: Description: "Don't suppress exception." - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions' + StyleGuide: '#dont-hide-exceptions' Enabled: true Lint/ImplicitStringConcatenation: Description: >- Checks for adjacent string literals on the same line, which @@ -1134,16 +1146,16 @@ Lint/Loop: Description: >- Use Kernel#loop with break rather than begin/end/until or begin/end/while for post-loop tests. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break' + StyleGuide: '#loop-with-break' Enabled: true Lint/NestedMethodDefinition: Description: 'Do not use nested method definitions.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods' + StyleGuide: '#no-nested-methods' Enabled: true Lint/NextWithoutAccumulator: Description: >- Do not omit the accumulator when calling `next` @@ -1156,11 +1168,11 @@ Lint/ParenthesesAsGroupedExpression: Description: >- Checks for method calls with a space before the opening parenthesis. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces' + StyleGuide: '#parens-no-spaces' Enabled: true Lint/PercentStringArray: Description: >- Checks for unwanted commas and quotes in %w/%W literals. @@ -1183,11 +1195,11 @@ about precedence. Enabled: true Lint/RescueException: Description: 'Avoid rescuing the Exception class.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-blind-rescues' + StyleGuide: '#no-blind-rescues' Enabled: true Lint/ShadowedException: Description: >- Avoid rescuing a higher level exception @@ -1200,11 +1212,11 @@ for block arguments or block local variables. Enabled: true Lint/StringConversionInInterpolation: Description: 'Checks for Object#to_s usage in string interpolation.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-to-s' + StyleGuide: '#no-to-s' Enabled: true Lint/UnderscorePrefixedVariableName: Description: 'Do not use prefix `_` for a variable that is used.' Enabled: true @@ -1224,16 +1236,16 @@ Description: 'Checks for splat unnecessarily being called on literals' Enabled: true Lint/UnusedBlockArgument: Description: 'Checks for unused block arguments.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars' + StyleGuide: '#underscore-unused-vars' Enabled: true Lint/UnusedMethodArgument: Description: 'Checks for unused method arguments.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars' + StyleGuide: '#underscore-unused-vars' Enabled: true Lint/UnreachableCode: Description: 'Unreachable code.' Enabled: true @@ -1243,11 +1255,11 @@ Enabled: true ContextCreatingMethods: [] Lint/UselessAssignment: Description: 'Checks for useless assignment to a local variable.' - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars' + StyleGuide: '#underscore-unused-vars' Enabled: true Lint/UselessComparison: Description: 'Checks for comparison of something with itself.' Enabled: true @@ -1309,10 +1321,14 @@ Enabled: true Performance/EndWith: Description: 'Use `end_with?` instead of a regex match anchored to the end of a string.' Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringmatch-vs-stringstart_withstringend_with-code-start-code-end' + # This will change to a new method call which isn't guaranteed to be on the + # object. Switching these methods has to be done with knowledge of the types + # of the variables which rubocop doesn't have. + AutoCorrect: false Enabled: true Performance/FixedSize: Description: 'Do not compute the size of statically sized objects except in constants' Enabled: true @@ -1332,11 +1348,11 @@ Performance/HashEachMethods: Description: >- Use `Hash#each_key` and `Hash#each_value` instead of `Hash#keys.each` and `Hash#values.each`. - StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-each' + StyleGuide: '#hash-each' Enabled: true AutoCorrect: false Performance/LstripRstrip: Description: 'Use `strip` instead of `lstrip.rstrip`.' @@ -1391,10 +1407,14 @@ Enabled: true Performance/StartWith: Description: 'Use `start_with?` instead of a regex match anchored to the beginning of a string.' Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringmatch-vs-stringstart_withstringend_with-code-start-code-end' + # This will change to a new method call which isn't guaranteed to be on the + # object. Switching these methods has to be done with knowledge of the types + # of the variables which rubocop doesn't have. + AutoCorrect: false Enabled: true Performance/StringReplacement: Description: >- Use `tr` instead of `gsub` when you are replacing the same @@ -1421,10 +1441,19 @@ Rails/Delegate: Description: 'Prefer delegate method for delegations.' Enabled: true +Rails/DelegateAllowBlank: + Description: 'Do not use allow_blank as an option to delegate.' + Enabled: true + +Rails/DynamicFindBy: + Description: 'Use `find_by` instead of dynamic `find_by_*`.' + StyleGuide: 'https://github.com/bbatsov/rails-style-guide#find_by' + Enabled: true + Rails/Exit: Description: >- Favor `fail`, `break`, `return`, etc. over `exit` in application or library code outside of Rake files to avoid exits during unit testing or running in production. @@ -1443,10 +1472,17 @@ Rails/HasAndBelongsToMany: Description: 'Prefer has_many :through to has_and_belongs_to_many.' StyleGuide: 'https://github.com/bbatsov/rails-style-guide#has-many-through' Enabled: true +Rails/HttpPositionalArguments: + Description: 'Use keyword arguments instead of positional arguments in http method calls.' + Enabled: true + Include: + - 'spec/**/*' + - 'test/**/*' + Rails/NotNullColumn: Description: 'Do not add a NOT NULL column without a default value' Enabled: true Rails/Output: @@ -1493,7 +1529,13 @@ Rails/Validation: Description: 'Use validates :attribute, hash of validations.' Enabled: true Security/JSONLoad: - Description : 'Prefer usage of JSON.parse' + Description: >- + Prefer usage of `JSON.parse` over `JSON.load` due to potential + security issues. See reference for more information. + Reference: 'http://ruby-doc.org/stdlib-2.3.0/libdoc/json/rdoc/JSON.html#method-i-load' Enabled: true + # Autocorrect here will change to a method that may cause crashes depending + # on the value of the argument. + AutoCorrect: false