Skip to content

Instantly share code, notes, and snippets.

@korczis
Created April 24, 2014 18:15
Show Gist options
  • Save korczis/11264206 to your computer and use it in GitHub Desktop.
Save korczis/11264206 to your computer and use it in GitHub Desktop.
List of RuboCop cops
# Available cops (167) + config for /Users/tomaskorcak/dev/gooddata-ruby:
# Type 'Lint' (32):
AmbiguousOperator:
Description: Checks for ambiguous operators in the first argument of a method invocation
without parentheses.
Enabled: true
AmbiguousRegexpLiteral:
Description: Checks for ambiguous regexp literals in the first argument of a method
invocation without parenthesis.
Enabled: true
AssignmentInCondition:
Description: Don't use assignment in conditions.
Enabled: true
AllowSafeAssignment: true
BlockAlignment:
Description: Align block ends correctly.
Enabled: true
ConditionPosition:
Description: Checks for condition placed in a confusing position relative to the keyword.
Enabled: true
Debugger:
Description: Check for debugger calls.
Enabled: true
# Supports --auto-correct
DeprecatedClassMethods:
Description: Check for deprecated class method calls.
Enabled: true
ElseLayout:
Description: Check for odd code arrangement in an else block.
Enabled: true
EmptyEnsure:
Description: Checks for empty ensure block.
Enabled: true
EmptyInterpolation:
Description: Checks for empty string interpolation.
Enabled: true
EndAlignment:
Description: Align ends correctly.
Enabled: true
AlignWith: keyword
SupportedStyles:
- keyword
- variable
EndInMethod:
Description: END blocks should not be placed inside method definitions.
Enabled: true
EnsureReturn:
Description: Never use return in an ensure block.
Enabled: true
Eval:
Description: The use of eval represents a serious security risk.
Enabled: true
HandleExceptions:
Description: Don't suppress exception.
Enabled: true
InvalidCharacterLiteral:
Description: Checks for invalid character literals with a non-escaped whitespace character.
Enabled: true
LiteralInCondition:
Description: Checks of literals used in conditions.
Enabled: true
LiteralInInterpolation:
Description: Checks for literals used in interpolation.
Enabled: true
Loop:
Description: Use Kernel#loop with break rather than begin/end/until or begin/end/while
for post-loop tests.
Enabled: true
ParenthesesAsGroupedExpression:
Description: Checks for method calls with a space before the opening parenthesis.
Enabled: true
RequireParentheses:
Description: Use parentheses in the method call to avoid confusion about precedence.
Enabled: true
RescueException:
Description: Avoid rescuing the Exception class.
Enabled: true
ShadowingOuterLocalVariable:
Description: Do not use the same name as outer local variable for block arguments
or block local variables.
Enabled: true
SpaceBeforeFirstArg:
Description: Put a space between a method name and the first argument in a method
call wihtout parentheses.
Enabled: true
# Supports --auto-correct
StringConversionInInterpolation:
Description: Checks for Object#to_s usage in string interpolation.
Enabled: true
UnreachableCode:
Description: Unreachable code.
Enabled: true
UselessAccessModifier:
Description: Checks for useless access modifiers.
Enabled: true
UselessAssignment:
Description: Checks for useless assignment to a local variable.
Enabled: true
UselessComparison:
Description: Checks for comparison of something with itself.
Enabled: true
UselessElseWithoutRescue:
Description: Checks for useless `else` in `begin..end` without `rescue`.
Enabled: true
UselessSetterCall:
Description: Checks for useless setter call to a local variable.
Enabled: true
Void:
Description: Possible use of operator/literal/variable in void context.
Enabled: true
# Type 'Rails' (7):
# Supports --auto-correct
ActionFilter:
Description: Enforces consistent use of action filter methods.
Enabled: true
EnforcedStyle: action
SupportedStyles:
- action
- filter
Include:
- app/controllers/*.rb
DefaultScope:
Description: Checks if the argument passed to default_scope is a block.
Enabled: true
Include:
- app/models/*.rb
HasAndBelongsToMany:
Description: Prefer has_many :through to has_and_belongs_to_many.
Enabled: true
Include:
- app/models/*.rb
Output:
Description: Checks for calls to puts, print, etc.
Enabled: true
ReadWriteAttribute:
Description: Checks for read_attribute(:attr) and write_attribute(:attr, val).
Enabled: true
Include:
- app/models/*.rb
ScopeArgs:
Description: Checks the arguments of ActiveRecord scopes.
Enabled: true
Include:
- app/models/*.rb
Validation:
Description: Use sexy validations.
Enabled: true
Include:
- app/models/*.rb
# Type 'Style' (128):
# Supports --auto-correct
AccessModifierIndentation:
Description: Check indentation of private/protected visibility modifiers.
Enabled: true
EnforcedStyle: indent
SupportedStyles:
- outdent
- indent
AccessorMethodName:
Description: Check the naming of accessor methods for get_/set_.
Enabled: true
# Supports --auto-correct
Alias:
Description: Use alias_method instead of alias.
Enabled: true
# Supports --auto-correct
AlignArray:
Description: Align the elements of an array literal if they span more than one line.
Enabled: true
# Supports --auto-correct
AlignHash:
Description: Align the elements of a hash literal if they span more than one line.
Enabled: true
EnforcedHashRocketStyle: key
EnforcedColonStyle: key
EnforcedLastArgumentHashStyle: always_inspect
SupportedLastArgumentHashStyles:
- always_inspect
- always_ignore
- ignore_implicit
- ignore_explicit
# Supports --auto-correct
AlignParameters:
Description: Align the parameters of a method call if they span more than one line.
Enabled: true
EnforcedStyle: with_first_parameter
SupportedStyles:
- with_first_parameter
- with_fixed_indentation
# Supports --auto-correct
AndOr:
Description: Use &&/|| instead of and/or.
Enabled: true
ArrayJoin:
Description: Use Array#join instead of Array#*.
Enabled: true
AsciiComments:
Description: Use only ascii symbols in comments.
Enabled: true
AsciiIdentifiers:
Description: Use only ascii symbols in identifiers.
Enabled: true
# Supports --auto-correct
Attr:
Description: Checks for uses of Module#attr.
Enabled: true
BeginBlock:
Description: Avoid the use of BEGIN blocks.
Enabled: true
BlockComments:
Description: Do not use block comments.
Enabled: true
BlockNesting:
Description: Avoid excessive block nesting
Enabled: true
Max: 3
# Supports --auto-correct
Blocks:
Description: Avoid using {...} for multi-line blocks (multiline chaining is always
ugly). Prefer {...} over do...end for single-line blocks.
Enabled: true
# Supports --auto-correct
BracesAroundHashParameters:
Description: Enforce braces style inside hash parameters.
Enabled: true
EnforcedStyle: no_braces
SupportedStyles:
- braces
- no_braces
CaseEquality:
Description: Avoid explicit use of the case equality operator(===).
Enabled: true
CaseIndentation:
Description: Indentation of when in a case/when/[else/]end.
Enabled: true
IndentWhenRelativeTo: case
SupportedStyles:
- case
- end
IndentOneStep: false
# Supports --auto-correct
CharacterLiteral:
Description: Checks for uses of character literals.
Enabled: true
ClassAndModuleCamelCase:
Description: Use CamelCase for classes and modules.
Enabled: true
ClassAndModuleChildren:
Description: Checks style of children classes and modules.
Enabled: true
EnforcedStyle: nested
SupportedStyles:
- nested
- compact
ClassLength:
Description: Avoid classes longer than 100 lines of code.
Enabled: true
CountComments: false
Max: 100
# Supports --auto-correct
ClassMethods:
Description: Use self when defining module/class methods.
Enabled: true
ClassVars:
Description: Avoid the use of class variables.
Enabled: true
# Supports --auto-correct
CollectionMethods:
Description: Preferred collection methods.
Enabled: true
PreferredMethods:
collect: map
collect!: map!
inject: reduce
detect: find
find_all: select
# Supports --auto-correct
ColonMethodCall:
Description: ! 'Do not use :: for method call.'
Enabled: true
CommentAnnotation:
Description: Checks formatting of special comments (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
Enabled: true
Keywords:
- TODO
- FIXME
- OPTIMIZE
- HACK
- REVIEW
ConstantName:
Description: Constants should use SCREAMING_SNAKE_CASE.
Enabled: true
CyclomaticComplexity:
Description: Avoid complex methods.
Enabled: true
Max: 6
# Supports --auto-correct
DefWithParentheses:
Description: Use def with parentheses when there are arguments.
Enabled: true
# Supports --auto-correct
DeprecatedHashMethods:
Description: Checks for use of deprecated Hash methods.
Enabled: true
Documentation:
Description: Document classes and non-namespace modules.
Enabled: true
DotPosition:
Description: Checks the position of the dot in multi-line method calls.
Enabled: true
EnforcedStyle: leading
SupportedStyles:
- leading
- trailing
DoubleNegation:
Description: Checks for uses of double negation (!!).
Enabled: true
# Supports --auto-correct
EmptyLineBetweenDefs:
Description: Use empty lines between defs.
Enabled: true
AllowAdjacentOneLineDefs: false
# Supports --auto-correct
EmptyLines:
Description: Don't use several empty lines in a row.
Enabled: true
EmptyLinesAroundAccessModifier:
Description: Keep blank lines around access modifiers.
Enabled: true
# Supports --auto-correct
EmptyLinesAroundBody:
Description: Keeps track of empty lines around expression bodies.
Enabled: true
# Supports --auto-correct
EmptyLiteral:
Description: Prefer literals to Array.new/Hash.new/String.new.
Enabled: true
Encoding:
Description: Use UTF-8 as the source file encoding.
Enabled: true
EndBlock:
Description: Avoid the use of END blocks.
Enabled: true
EndOfLine:
Description: Use Unix-style line endings.
Enabled: true
EvenOdd:
Description: Favor the use of Fixnum#even? && Fixnum#odd?
Enabled: true
FileName:
Description: Use snake_case for source file names.
Enabled: true
Exclude:
- Rakefile
- Gemfile
- Capfile
# Supports --auto-correct
FinalNewline:
Description: Checks for a final newline in a source file.
Enabled: true
FlipFlop:
Description: Checks for flip flops
Enabled: true
For:
Description: Checks use of for or each in multiline loops.
Enabled: true
EnforcedStyle: each
SupportedStyles:
- for
- each
FormatString:
Description: Enforce the use of Kernel#sprintf, Kernel#format or String#%.
Enabled: true
EnforcedStyle: format
SupportedStyles:
- format
- sprintf
- percent
GlobalVars:
Description: Do not introduce global variables.
Enabled: true
AllowedVariables: []
GuardClause:
Description: Check for conditionals that can be replaced with guard clauses
Enabled: false
# Supports --auto-correct
HashSyntax:
Description: ! 'Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax { :a =>
1, :b => 2 }.'
Enabled: true
EnforcedStyle: ruby19
SupportedStyles:
- ruby19
- hash_rockets
IfUnlessModifier:
Description: Favor modifier if/unless usage when you have a single-line body.
Enabled: true
MaxLineLength: 79
IfWithSemicolon:
Description: Never use if x; .... Use the ternary operator instead.
Enabled: true
# Supports --auto-correct
IndentArray:
Description: Checks the indentation of the first element in an array literal.
Enabled: true
# Supports --auto-correct
IndentHash:
Description: Checks the indentation of the first key in a hash literal.
Enabled: true
EnforcedStyle: special_inside_parentheses
SupportedStyles:
- special_inside_parentheses
- consistent
# Supports --auto-correct
IndentationConsistency:
Description: Keep indentation straight.
Enabled: true
# Supports --auto-correct
IndentationWidth:
Description: Use 2 spaces for indentation.
Enabled: true
Lambda:
Description: Use the new lambda literal syntax for single-line blocks.
Enabled: true
# Supports --auto-correct
LambdaCall:
Description: Use lambda.call(...) instead of lambda.(...).
Enabled: true
EnforcedStyle: call
SupportedStyles:
- call
- braces
# Supports --auto-correct
LeadingCommentSpace:
Description: Comments should start with a space.
Enabled: true
# Supports --auto-correct
LineEndConcatenation:
Description: Use \\ instead of + to concatenate two string literals at line end.
Enabled: true
LineLength:
Description: Limit lines to 79 characters.
Enabled: true
Max: 79
# Supports --auto-correct
MethodCallParentheses:
Description: Do not use parentheses for method calls with no arguments.
Enabled: true
MethodCalledOnDoEndBlock:
Description: Avoid chaining a method call on a do...end block.
Enabled: false
# Supports --auto-correct
MethodDefParentheses:
Description: Checks if the method definitions have or don't have parentheses.
Enabled: true
EnforcedStyle: require_parentheses
SupportedStyles:
- require_parentheses
- require_no_parentheses
MethodLength:
Description: Avoid methods longer than 10 lines of code.
Enabled: true
CountComments: false
Max: 10
MethodName:
Description: Use the configured style when naming methods.
Enabled: true
EnforcedStyle: snake_case
SupportedStyles:
- snake_case
- camelCase
ModuleFunction:
Description: Checks for usage of `extend self` in modules.
Enabled: true
MultilineBlockChain:
Description: Avoid multi-line chains of blocks.
Enabled: true
MultilineIfThen:
Description: Never use then for multi-line if/unless.
Enabled: true
MultilineTernaryOperator:
Description: ! 'Avoid multi-line ?: (the ternary operator); use if/unless instead.'
Enabled: true
# Supports --auto-correct
NegatedIf:
Description: Favor unless over if for negative conditions (or control flow or).
Enabled: true
# Supports --auto-correct
NegatedWhile:
Description: Favor until over while for negative conditions.
Enabled: true
NestedTernaryOperator:
Description: Use one expression per branch in a ternary operator.
Enabled: true
# Supports --auto-correct
NilComparison:
Description: Prefer x.nil? to x == nil.
Enabled: true
# Supports --auto-correct
NonNilCheck:
Description: Checks for redundant nil checks.
Enabled: true
# Supports --auto-correct
Not:
Description: Use ! instead of not.
Enabled: true
# Supports --auto-correct
NumericLiterals:
Description: Add underscores to large numeric literals to improve their readability.
Enabled: true
MinDigits: 5
OneLineConditional:
Description: Favor the ternary operator(?:) over if/then/else/end constructs.
Enabled: true
OpMethod:
Description: When defining binary operators, name the argument other.
Enabled: true
ParameterLists:
Description: Avoid parameter lists longer than three or four parameters.
Enabled: true
Max: 5
CountKeywordArgs: true
# Supports --auto-correct
ParenthesesAroundCondition:
Description: Don't use parentheses around the condition of an if/unless/while.
Enabled: true
AllowSafeAssignment: true
# Supports --auto-correct
PercentLiteralDelimiters:
Description: Use `%`-literal delimiters consistently
Enabled: true
PreferredDelimiters:
! '%': ()
! '%i': ()
! '%q': ()
! '%Q': ()
! '%r': ! '{}'
! '%s': ()
! '%w': ()
! '%W': ()
! '%x': ()
# Supports --auto-correct
PerlBackrefs:
Description: Avoid Perl-style regex back references.
Enabled: true
PredicateName:
Description: Check the names of predicate methods.
Enabled: true
NamePrefixBlacklist:
- is_
- has_
- have_
# Supports --auto-correct
Proc:
Description: Use proc instead of Proc.new.
Enabled: true
RaiseArgs:
Description: Checks the arguments passed to raise/fail.
Enabled: true
EnforcedStyle: exploded
SupportedStyles:
- compact
- exploded
RedundantBegin:
Description: Don't use begin blocks when they are not needed.
Enabled: true
RedundantException:
Description: Checks for an obsolete RuntimeException argument in raise/fail.
Enabled: true
# Supports --auto-correct
RedundantReturn:
Description: Don't use return where it's not required.
Enabled: true
AllowMultipleReturnValues: false
# Supports --auto-correct
RedundantSelf:
Description: Don't use self where it's not needed.
Enabled: true
RegexpLiteral:
Description: Use %r for regular expressions matching more than `MaxSlashes` '/' characters.
Use %r only for regular expressions matching more than `MaxSlashes` '/' character.
Enabled: true
MaxSlashes: 1
RescueModifier:
Description: Avoid using rescue in its modifier form.
Enabled: true
SelfAssignment:
Description: Checks for places where self-assignment shorthand should have been used.
Enabled: true
# Supports --auto-correct
Semicolon:
Description: Don't use semicolons to terminate expressions.
Enabled: true
AllowAsExpressionSeparator: false
# Supports --auto-correct
SignalException:
Description: Checks for proper usage of fail and raise.
Enabled: true
EnforcedStyle: semantic
SupportedStyles:
- only_raise
- only_fail
- semantic
SingleLineBlockParams:
Description: Enforces the names of some block params.
Enabled: true
Methods:
- reduce:
- a
- e
- inject:
- a
- e
# Supports --auto-correct
SingleLineMethods:
Description: Avoid single-line methods.
Enabled: true
AllowIfMethodIsEmpty: true
# Supports --auto-correct
SingleSpaceBeforeFirstArg:
Description: Checks that exactly one space is used between a method name and the first
argument for method calls without parentheses.
Enabled: true
# Supports --auto-correct
SpaceAfterColon:
Description: Use spaces after colons.
Enabled: true
# Supports --auto-correct
SpaceAfterComma:
Description: Use spaces after commas.
Enabled: true
# Supports --auto-correct
SpaceAfterControlKeyword:
Description: Use spaces after if/elsif/unless/while/until/case/when.
Enabled: true
# Supports --auto-correct
SpaceAfterMethodName:
Description: Never put a space between a method name and the opening parenthesis in
a method definition.
Enabled: true
# Supports --auto-correct
SpaceAfterNot:
Description: Tracks redundant space after the ! operator.
Enabled: true
# Supports --auto-correct
SpaceAfterSemicolon:
Description: Use spaces after semicolons.
Enabled: true
# Supports --auto-correct
SpaceAroundEqualsInParameterDefault:
Description: Checks that the equals signs in parameter default assignments have or
don't have surrounding space depending on configuration.
Enabled: true
EnforcedStyle: space
SupportedStyles:
- space
- no_space
# Supports --auto-correct
SpaceAroundOperators:
Description: Use spaces around operators.
Enabled: true
# Supports --auto-correct
SpaceBeforeBlockBraces:
Description: Checks that the left block brace has or doesn't have space before it.
Enabled: true
EnforcedStyle: space
SupportedStyles:
- space
- no_space
# Supports --auto-correct
SpaceBeforeModifierKeyword:
Description: Put a space before the modifier keyword.
Enabled: true
# Supports --auto-correct
SpaceInsideBlockBraces:
Description: Checks that block braces have or don't have surrounding space. For blocks
taking parameters, checks that the left brace has or doesn't have trailing space.
Enabled: true
EnforcedStyle: space
SupportedStyles:
- space
- no_space
EnforcedStyleForEmptyBraces: no_space
SpaceBeforeBlockParameters: true
# Supports --auto-correct
SpaceInsideBrackets:
Description: No spaces after [ or before ].
Enabled: true
# Supports --auto-correct
SpaceInsideHashLiteralBraces:
Description: Use spaces inside hash literal braces - or don't.
Enabled: true
EnforcedStyle: space
EnforcedStyleForEmptyBraces: no_space
SupportedStyles:
- space
- no_space
# Supports --auto-correct
SpaceInsideParens:
Description: No spaces after ( or before ).
Enabled: true
# Supports --auto-correct
SpecialGlobalVars:
Description: Avoid Perl-style global variables.
Enabled: true
# Supports --auto-correct
StringLiterals:
Description: Checks if uses of quotes match the configured preference.
Enabled: true
EnforcedStyle: single_quotes
SupportedStyles:
- single_quotes
- double_quotes
SymbolArray:
Description: Use %i or %I for arrays of symbols.
Enabled: false
Tab:
Description: No hard tabs.
Enabled: true
# Supports --auto-correct
TrailingBlankLines:
Description: Checks for superfluous trailing blank lines.
Enabled: true
TrailingComma:
Description: Checks for trailing comma in parameter lists and literals.
Enabled: true
EnforcedStyleForMultiline: no_comma
SupportedStyles:
- comma
- no_comma
# Supports --auto-correct
TrailingWhitespace:
Description: Avoid trailing whitespace.
Enabled: true
TrivialAccessors:
Description: Prefer attr_* methods to trivial readers/writers.
Enabled: true
ExactNameMatch: false
AllowPredicates: false
Whitelist:
- to_ary
- to_a
- to_c
- to_enum
- to_h
- to_hash
- to_i
- to_int
- to_io
- to_open
- to_path
- to_proc
- to_r
- to_regexp
- to_str
- to_s
- to_sym
UnlessElse:
Description: Never use unless with else. Rewrite these with the positive case first.
Enabled: true
# Supports --auto-correct
VariableInterpolation:
Description: Don't interpolate global, instance and class variables directly in strings.
Enabled: true
VariableName:
Description: Use the configured style when naming variables.
Enabled: true
EnforcedStyle: snake_case
SupportedStyles:
- snake_case
- camelCase
# Supports --auto-correct
WhenThen:
Description: Use when x then ... for one-line cases.
Enabled: true
# Supports --auto-correct
WhileUntilDo:
Description: Checks for redundant do after while or until.
Enabled: true
WhileUntilModifier:
Description: Favor modifier while/until usage when you have a single-line body.
Enabled: true
MaxLineLength: 79
# Supports --auto-correct
WordArray:
Description: Use %w or %W for arrays of words.
Enabled: true
MinSize: 0
@olleolleolle
Copy link

FinalNewline is gone, in modern Rubocop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment