debian-mirror-gitlab/.rubocop.yml

825 lines
19 KiB
YAML
Raw Normal View History

2016-08-24 12:49:21 +05:30
require:
- rubocop-rspec
- ./rubocop/rubocop
inherit_from: .rubocop_todo.yml
2016-06-02 11:05:42 +05:30
AllCops:
2016-09-29 09:46:39 +05:30
TargetRubyVersion: 2.3
# Cop names are not d§splayed in offense messages by default. Change behavior
2016-06-02 11:05:42 +05:30
# by overriding DisplayCopNames, or by giving the -D/--display-cop-names
# option.
DisplayCopNames: true
# Style guide URLs are not displayed in offense messages by default. Change
# behavior by overriding DisplayStyleGuide, or by giving the
# -S/--display-style-guide option.
DisplayStyleGuide: false
# Exclude some GitLab files
Exclude:
- 'vendor/**/*'
- 'db/*'
- 'db/fixtures/**/*'
2016-06-02 11:05:42 +05:30
- 'tmp/**/*'
- 'bin/**/*'
- 'lib/backup/**/*'
- 'lib/ci/backup/**/*'
- 'lib/tasks/**/*'
- 'lib/ci/migrate/**/*'
- 'lib/email_validator.rb'
- 'lib/gitlab/upgrader.rb'
- 'lib/gitlab/seeder.rb'
- 'generator_templates/**/*'
##################### Style ##################################
# Check indentation of private/protected visibility modifiers.
2015-04-26 12:48:37 +05:30
Style/AccessModifierIndentation:
Enabled: true
2016-06-02 11:05:42 +05:30
# Check the naming of accessor methods for get_/set_.
2015-04-26 12:48:37 +05:30
Style/AccessorMethodName:
Enabled: false
2016-06-02 11:05:42 +05:30
# Use alias_method instead of alias.
2015-04-26 12:48:37 +05:30
Style/Alias:
2016-06-02 11:05:42 +05:30
EnforcedStyle: prefer_alias_method
2015-04-26 12:48:37 +05:30
Enabled: true
2016-06-02 11:05:42 +05:30
# Align the elements of an array literal if they span more than one line.
2015-04-26 12:48:37 +05:30
Style/AlignArray:
Enabled: true
2016-06-02 11:05:42 +05:30
# Align the elements of a hash literal if they span more than one line.
2015-04-26 12:48:37 +05:30
Style/AlignHash:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use `Array#join` instead of `Array#*`.
2015-04-26 12:48:37 +05:30
Style/ArrayJoin:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use only ascii symbols in comments.
2015-04-26 12:48:37 +05:30
Style/AsciiComments:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use only ascii symbols in identifiers.
2015-04-26 12:48:37 +05:30
Style/AsciiIdentifiers:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for uses of Module#attr.
2015-04-26 12:48:37 +05:30
Style/Attr:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Avoid the use of BEGIN blocks.
2015-04-26 12:48:37 +05:30
Style/BeginBlock:
Enabled: true
2016-06-02 11:05:42 +05:30
# Do not use block comments.
2015-04-26 12:48:37 +05:30
Style/BlockComments:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Put end statement of multiline block on its own line.
2015-04-26 12:48:37 +05:30
Style/BlockEndNewline:
Enabled: true
2016-06-02 11:05:42 +05:30
# Avoid using {...} for multi-line blocks (multiline chaining is # always
# ugly). Prefer {...} over do...end for single-line blocks.
2015-12-23 02:04:40 +05:30
Style/BlockDelimiters:
2015-04-26 12:48:37 +05:30
Enabled: true
2016-06-02 11:05:42 +05:30
# Indentation of when in a case/when/[else/]end.
2015-04-26 12:48:37 +05:30
Style/CaseIndentation:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for uses of character literals.
2015-04-26 12:48:37 +05:30
Style/CharacterLiteral:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use CamelCase for classes and modules.'
2015-04-26 12:48:37 +05:30
Style/ClassAndModuleCamelCase:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks style of children classes and modules.
2015-04-26 12:48:37 +05:30
Style/ClassAndModuleChildren:
Enabled: false
2016-06-02 11:05:42 +05:30
# Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.
2015-04-26 12:48:37 +05:30
Style/ClassCheck:
Enabled: false
2016-06-02 11:05:42 +05:30
# Use self when defining module/class methods.
2015-04-26 12:48:37 +05:30
Style/ClassMethods:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Avoid the use of class variables.
2015-04-26 12:48:37 +05:30
Style/ClassVars:
Enabled: true
2016-06-02 11:05:42 +05:30
# Indentation of comments.
2015-04-26 12:48:37 +05:30
Style/CommentIndentation:
Enabled: true
2016-06-02 11:05:42 +05:30
# Constants should use SCREAMING_SNAKE_CASE.
2015-04-26 12:48:37 +05:30
Style/ConstantName:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use def with parentheses when there are arguments.
2015-04-26 12:48:37 +05:30
Style/DefWithParentheses:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Document classes and non-namespace modules.
2015-04-26 12:48:37 +05:30
Style/Documentation:
Enabled: false
2016-06-02 11:05:42 +05:30
# Align elses and elsifs correctly.
2015-04-26 12:48:37 +05:30
Style/ElseAlignment:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use empty lines between defs.
2015-04-26 12:48:37 +05:30
Style/EmptyLineBetweenDefs:
Enabled: false
2016-06-02 11:05:42 +05:30
# Don't use several empty lines in a row.
2015-04-26 12:48:37 +05:30
Style/EmptyLines:
2016-08-24 12:49:21 +05:30
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Keep blank lines around access modifiers.
2015-04-26 12:48:37 +05:30
Style/EmptyLinesAroundAccessModifier:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Keeps track of empty lines around block bodies.
2015-04-26 12:48:37 +05:30
Style/EmptyLinesAroundBlockBody:
2016-09-13 17:45:13 +05:30
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Keeps track of empty lines around class bodies.
2015-04-26 12:48:37 +05:30
Style/EmptyLinesAroundClassBody:
2016-09-13 17:45:13 +05:30
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Keeps track of empty lines around module bodies.
2015-04-26 12:48:37 +05:30
Style/EmptyLinesAroundModuleBody:
2016-09-13 17:45:13 +05:30
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Keeps track of empty lines around method bodies.
2015-04-26 12:48:37 +05:30
Style/EmptyLinesAroundMethodBody:
2016-09-13 17:45:13 +05:30
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Avoid the use of END blocks.
2015-04-26 12:48:37 +05:30
Style/EndBlock:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use Unix-style line endings.
2015-04-26 12:48:37 +05:30
Style/EndOfLine:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Favor the use of Fixnum#even? && Fixnum#odd?
2015-04-26 12:48:37 +05:30
Style/EvenOdd:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use snake_case for source file names.
2015-04-26 12:48:37 +05:30
Style/FileName:
Enabled: true
# Checks for a line break before the first parameter in a multi-line method
# parameter definition.
Style/FirstMethodParameterLineBreak:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for flip flops.
2015-04-26 12:48:37 +05:30
Style/FlipFlop:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks use of for or each in multiline loops.
2015-04-26 12:48:37 +05:30
Style/For:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-09-29 09:46:39 +05:30
# Checks if there is a magic comment to enforce string literals
Style/FrozenStringLiteralComment:
Enabled: false
2016-06-02 11:05:42 +05:30
# Do not introduce global variables.
2015-04-26 12:48:37 +05:30
Style/GlobalVars:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Prefer Ruby 1.9 hash syntax `{ a: 1, b: 2 }`
# over 1.8 syntax `{ :a => 1, :b => 2 }`.
2015-04-26 12:48:37 +05:30
Style/HashSyntax:
Enabled: true
2016-06-02 11:05:42 +05:30
# Do not use if x; .... Use the ternary operator instead.
2015-04-26 12:48:37 +05:30
Style/IfWithSemicolon:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks that conditional statements do not have an identical line at the
# end of each branch, which can validly be moved out of the conditional.
Style/IdenticalConditionalBranches:
2016-08-24 12:49:21 +05:30
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks the indentation of the first line of the right-hand-side of a
# multi-line assignment.
Style/IndentAssignment:
Enabled: true
2016-06-02 11:05:42 +05:30
# Keep indentation straight.
2015-04-26 12:48:37 +05:30
Style/IndentationConsistency:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use 2 spaces for indentation.
2015-04-26 12:48:37 +05:30
Style/IndentationWidth:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use Kernel#loop for infinite loops.
2015-04-26 12:48:37 +05:30
Style/InfiniteLoop:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use lambda.call(...) instead of lambda.(...).
2015-04-26 12:48:37 +05:30
Style/LambdaCall:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Comments should start with a space.
2015-04-26 12:48:37 +05:30
Style/LeadingCommentSpace:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks if the method definitions have or don't have parentheses.
2015-04-26 12:48:37 +05:30
Style/MethodDefParentheses:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use the configured style when naming methods.
2015-04-26 12:48:37 +05:30
Style/MethodName:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for usage of `extend self` in modules.
2015-04-26 12:48:37 +05:30
Style/ModuleFunction:
Enabled: false
# Checks that the closing brace in an array literal is either on the same line
# as the last array element, or a new line.
Style/MultilineArrayBraceLayout:
Enabled: false
EnforcedStyle: symmetrical
2016-06-02 11:05:42 +05:30
# Avoid multi-line chains of blocks.
2015-04-26 12:48:37 +05:30
Style/MultilineBlockChain:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Ensures newlines after multiline block do statements.
2015-04-26 12:48:37 +05:30
Style/MultilineBlockLayout:
Enabled: true
# Checks that the closing brace in a hash literal is either on the same line as
# the last hash element, or a new line.
Style/MultilineHashBraceLayout:
Enabled: false
EnforcedStyle: symmetrical
2016-06-02 11:05:42 +05:30
# Do not use then for multi-line if/unless.
2015-04-26 12:48:37 +05:30
Style/MultilineIfThen:
Enabled: true
# Checks that the closing brace in a method call is either on the same line as
# the last method argument, or a new line.
Style/MultilineMethodCallBraceLayout:
2015-04-26 12:48:37 +05:30
Enabled: false
EnforcedStyle: symmetrical
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks indentation of method calls with the dot operator that span more than
# one line.
Style/MultilineMethodCallIndentation:
Enabled: false
# Checks that the closing brace in a method definition is symmetrical with
# respect to the opening brace and the method parameters.
Style/MultilineMethodDefinitionBraceLayout:
Enabled: false
2016-06-02 11:05:42 +05:30
# Checks indentation of binary operations that span more than one line.
2015-04-26 12:48:37 +05:30
Style/MultilineOperationIndentation:
Enabled: false
2016-09-13 17:45:13 +05:30
# Avoid multi-line `? :` (the ternary operator), use if/unless instead.
Style/MultilineTernaryOperator:
Enabled: true
2016-06-02 11:05:42 +05:30
# Favor unless over if for negative conditions (or control flow or).
2015-04-26 12:48:37 +05:30
Style/NegatedIf:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Avoid using nested modifiers.
Style/NestedModifier:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use one expression per branch in a ternary operator.
2015-04-26 12:48:37 +05:30
Style/NestedTernaryOperator:
Enabled: true
2016-06-02 11:05:42 +05:30
# Prefer x.nil? to x == nil.
2015-04-26 12:48:37 +05:30
Style/NilComparison:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for redundant nil checks.
2015-04-26 12:48:37 +05:30
Style/NonNilCheck:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use ! instead of not.
2015-04-26 12:48:37 +05:30
Style/Not:
Enabled: true
2016-06-02 11:05:42 +05:30
# Add underscores to large numeric literals to improve their readability.
2015-04-26 12:48:37 +05:30
Style/NumericLiterals:
Enabled: false
2016-06-02 11:05:42 +05:30
# Favor the ternary operator(?:) over if/then/else/end constructs.
2015-04-26 12:48:37 +05:30
Style/OneLineConditional:
Enabled: true
2016-06-02 11:05:42 +05:30
# When defining binary operators, name the argument other.
2015-04-26 12:48:37 +05:30
Style/OpMethod:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Don't use parentheses around the condition of an if/unless/while.
2015-04-26 12:48:37 +05:30
Style/ParenthesesAroundCondition:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for parentheses that seem not to serve any purpose.
Style/RedundantParentheses:
Enabled: true
2016-06-02 11:05:42 +05:30
# Don't use return where it's not required.
2015-04-26 12:48:37 +05:30
Style/RedundantReturn:
Enabled: true
2016-06-02 11:05:42 +05:30
# Don't use semicolons to terminate expressions.
2015-04-26 12:48:37 +05:30
Style/Semicolon:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for proper usage of fail and raise.
2015-04-26 12:48:37 +05:30
Style/SignalException:
EnforcedStyle: only_raise
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use spaces after colons.
2015-04-26 12:48:37 +05:30
Style/SpaceAfterColon:
2016-08-24 12:49:21 +05:30
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use spaces after commas.
2015-04-26 12:48:37 +05:30
Style/SpaceAfterComma:
2016-08-24 12:49:21 +05:30
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Do not put a space between a method name and the opening parenthesis in a
# method definition.
2015-04-26 12:48:37 +05:30
Style/SpaceAfterMethodName:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Tracks redundant space after the ! operator.
2015-04-26 12:48:37 +05:30
Style/SpaceAfterNot:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use spaces after semicolons.
2015-04-26 12:48:37 +05:30
Style/SpaceAfterSemicolon:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-09-13 17:45:13 +05:30
# Use space around equals in parameter default
Style/SpaceAroundEqualsInParameterDefault:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use a space around keywords if appropriate.
Style/SpaceAroundKeyword:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use a single space around operators.
Style/SpaceAroundOperators:
Enabled: true
# No spaces before commas.
Style/SpaceBeforeComma:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for missing space between code and a comment on the same line.
Style/SpaceBeforeComment:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# No spaces before semicolons.
Style/SpaceBeforeSemicolon:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use spaces inside hash literal braces - or don't.
2015-04-26 12:48:37 +05:30
Style/SpaceInsideHashLiteralBraces:
Enabled: true
2016-06-02 11:05:42 +05:30
# No spaces inside range literals.
2015-04-26 12:48:37 +05:30
Style/SpaceInsideRangeLiteral:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for padding/surrounding spaces inside string interpolation.
Style/SpaceInsideStringInterpolation:
EnforcedStyle: no_space
Enabled: true
2016-06-02 11:05:42 +05:30
# Check for the usage of parentheses around stabby lambda arguments.
Style/StabbyLambdaParentheses:
EnforcedStyle: require_parentheses
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks if uses of quotes match the configured preference.
2015-04-26 12:48:37 +05:30
Style/StringLiterals:
Enabled: false
2016-06-02 11:05:42 +05:30
# Checks if configured preferred methods are used over non-preferred.
Style/StringMethods:
PreferredMethods:
intern: to_sym
Enabled: true
2016-06-02 11:05:42 +05:30
# No hard tabs.
2015-04-26 12:48:37 +05:30
Style/Tab:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks trailing blank lines and final newline.
2015-04-26 12:48:37 +05:30
Style/TrailingBlankLines:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for %W when interpolation is not needed.
2015-04-26 12:48:37 +05:30
Style/UnneededCapitalW:
2016-08-24 12:49:21 +05:30
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for %q/%Q when single quotes or double quotes would do.
2015-04-26 12:48:37 +05:30
Style/UnneededPercentQ:
Enabled: false
2016-06-02 11:05:42 +05:30
# Don't interpolate global, instance and class variables directly in strings.
2015-04-26 12:48:37 +05:30
Style/VariableInterpolation:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use the configured style when naming variables.
2015-04-26 12:48:37 +05:30
Style/VariableName:
EnforcedStyle: snake_case
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use when x then ... for one-line cases.
2015-04-26 12:48:37 +05:30
Style/WhenThen:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for redundant do after while or until.
2015-04-26 12:48:37 +05:30
Style/WhileUntilDo:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Favor modifier while/until usage when you have a single-line body.
2015-04-26 12:48:37 +05:30
Style/WhileUntilModifier:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Use %w or %W for arrays of words.
2015-04-26 12:48:37 +05:30
Style/WordArray:
Enabled: false
2016-06-02 11:05:42 +05:30
#################### Metrics ################################
2015-12-23 02:04:40 +05:30
2016-06-02 11:05:42 +05:30
# A calculated magnitude based on number of assignments,
# branches, and conditions.
Metrics/AbcSize:
2015-12-23 02:04:40 +05:30
Enabled: true
2016-06-02 11:05:42 +05:30
Max: 60
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Avoid excessive block nesting.
2015-04-26 12:48:37 +05:30
Metrics/BlockNesting:
2015-12-23 02:04:40 +05:30
Enabled: true
Max: 4
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Avoid classes longer than 100 lines of code.
2015-04-26 12:48:37 +05:30
Metrics/ClassLength:
Enabled: false
2016-06-02 11:05:42 +05:30
# A complexity metric that is strongly correlated to the number
# of test cases needed to validate a method.
Metrics/CyclomaticComplexity:
Enabled: true
Max: 17
# Limit lines to 80 characters.
2015-04-26 12:48:37 +05:30
Metrics/LineLength:
Enabled: false
2016-06-02 11:05:42 +05:30
# Avoid methods longer than 10 lines of code.
2015-04-26 12:48:37 +05:30
Metrics/MethodLength:
Enabled: false
2016-06-02 11:05:42 +05:30
# Avoid modules longer than 100 lines of code.
2015-12-23 02:04:40 +05:30
Metrics/ModuleLength:
2015-04-26 12:48:37 +05:30
Enabled: false
2016-06-02 11:05:42 +05:30
# Avoid parameter lists longer than three or four parameters.
Metrics/ParameterLists:
Enabled: true
Max: 8
# A complexity metric geared towards measuring complexity for a human reader.
Metrics/PerceivedComplexity:
Enabled: true
Max: 18
2015-04-26 12:48:37 +05:30
#################### Lint ################################
2016-09-13 17:45:13 +05:30
# Checks for useless access modifiers.
Lint/UselessAccessModifier:
Enabled: true
# Checks for attempts to use `private` or `protected` to set the visibility
# of a class method, which does not work.
Lint/IneffectiveAccessModifier:
Enabled: false
2016-06-02 11:05:42 +05:30
# Checks for ambiguous operators in the first argument of a method invocation
# without parentheses.
2015-04-26 12:48:37 +05:30
Lint/AmbiguousOperator:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Align block ends correctly.
2015-04-26 12:48:37 +05:30
Lint/BlockAlignment:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Default values in optional keyword arguments and optional ordinal arguments
# should not refer back to the name of the argument.
Lint/CircularArgumentReference:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for condition placed in a confusing position relative to the keyword.
2015-04-26 12:48:37 +05:30
Lint/ConditionPosition:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Check for debugger calls.
2015-04-26 12:48:37 +05:30
Lint/Debugger:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Align ends corresponding to defs correctly.
2015-04-26 12:48:37 +05:30
Lint/DefEndAlignment:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Check for deprecated class method calls.
2015-04-26 12:48:37 +05:30
Lint/DeprecatedClassMethods:
2016-06-02 11:05:42 +05:30
Enabled: true
# Check for immutable argument given to each_with_object.
Lint/EachWithObjectArgument:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Check for odd code arrangement in an else block.
2015-04-26 12:48:37 +05:30
Lint/ElseLayout:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for empty ensure block.
2015-04-26 12:48:37 +05:30
Lint/EmptyEnsure:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Align ends correctly.
2015-04-26 12:48:37 +05:30
Lint/EndAlignment:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# END blocks should not be placed inside method definitions.
2015-04-26 12:48:37 +05:30
Lint/EndInMethod:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Do not use return in an ensure block.
2015-04-26 12:48:37 +05:30
Lint/EnsureReturn:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# The use of eval represents a serious security risk.
2015-04-26 12:48:37 +05:30
Lint/Eval:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Catches floating-point literals too large or small for Ruby to represent.
Lint/FloatOutOfRange:
Enabled: true
2016-06-02 11:05:42 +05:30
# The number of parameters to format/sprint must match the fields.
Lint/FormatParameterMismatch:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for adjacent string literals on the same line, which could better be
# represented as a single string literal.
Lint/ImplicitStringConcatenation:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for invalid character literals with a non-escaped whitespace
# character.
2015-04-26 12:48:37 +05:30
Lint/InvalidCharacterLiteral:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks of literals used in conditions.
2015-04-26 12:48:37 +05:30
Lint/LiteralInCondition:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for literals used in interpolation.
2015-04-26 12:48:37 +05:30
Lint/LiteralInInterpolation:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Do not use nested method definitions.
Lint/NestedMethodDefinition:
Enabled: true
2016-06-02 11:05:42 +05:30
# Do not omit the accumulator when calling `next` in a `reduce`/`inject` block.
Lint/NextWithoutAccumulator:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for method calls with a space before the opening parenthesis.
2015-04-26 12:48:37 +05:30
Lint/ParenthesesAsGroupedExpression:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for `rand(1)` calls. Such calls always return `0` and most likely
# a mistake.
Lint/RandOne:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use parentheses in the method call to avoid confusion about precedence.
2015-04-26 12:48:37 +05:30
Lint/RequireParentheses:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Avoid rescuing the Exception class.
2015-04-26 12:48:37 +05:30
Lint/RescueException:
2015-12-23 02:04:40 +05:30
Enabled: true
2015-04-26 12:48:37 +05:30
2016-08-24 12:49:21 +05:30
# Checks for the order which exceptions are rescued to avoid rescueing a less specific exception before a more specific exception.
Lint/ShadowedException:
2015-04-26 12:48:37 +05:30
Enabled: false
2016-06-02 11:05:42 +05:30
# Do not use prefix `_` for a variable that is used.
2015-04-26 12:48:37 +05:30
Lint/UnderscorePrefixedVariableName:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for rubocop:disable comments that can be removed.
# Note: this cop is not disabled when disabling all cops.
# It must be explicitly disabled.
Lint/UnneededDisable:
Enabled: false
# Unreachable code.
2015-04-26 12:48:37 +05:30
Lint/UnreachableCode:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for useless assignment to a local variable.
2015-04-26 12:48:37 +05:30
Lint/UselessAssignment:
2015-10-24 18:46:33 +05:30
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for comparison of something with itself.
2015-04-26 12:48:37 +05:30
Lint/UselessComparison:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for useless `else` in `begin..end` without `rescue`.
2015-04-26 12:48:37 +05:30
Lint/UselessElseWithoutRescue:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks for useless setter call to a local variable.
2015-04-26 12:48:37 +05:30
Lint/UselessSetterCall:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Possible use of operator/literal/variable in void context.
2015-04-26 12:48:37 +05:30
Lint/Void:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
##################### Performance ############################
# Use `casecmp` rather than `downcase ==`.
Performance/Casecmp:
Enabled: true
# Use `str.{start,end}_with?(x, ..., y, ...)` instead of
# `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`.
Performance/DoubleStartEndWith:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use `strip` instead of `lstrip.rstrip`.
Performance/LstripRstrip:
Enabled: true
# Use `Range#cover?` instead of `Range#include?`.
Performance/RangeInclude:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use `sort` instead of `sort_by { |x| x }`.
Performance/RedundantSortBy:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use `start_with?` instead of a regex match anchored to the beginning of a
# string.
Performance/StartWith:
Enabled: true
2016-06-02 11:05:42 +05:30
# Use `tr` instead of `gsub` when you are replacing the same number of
# characters. Use `delete` instead of `gsub` when you are deleting
# characters.
Performance/StringReplacement:
Enabled: true
# Checks for `.times.map` calls.
Performance/TimesMap:
Enabled: true
2016-06-02 11:05:42 +05:30
2015-04-26 12:48:37 +05:30
##################### Rails ##################################
2016-06-02 11:05:42 +05:30
# Enables Rails cops.
Rails:
Enabled: true
# Enforces consistent use of action filter methods.
2015-04-26 12:48:37 +05:30
Rails/ActionFilter:
2015-09-11 14:41:01 +05:30
Enabled: true
2016-06-02 11:05:42 +05:30
EnforcedStyle: action
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Checks the correct usage of date aware methods, such as `Date.today`,
# `Date.current`, etc.
2015-12-23 02:04:40 +05:30
Rails/Date:
Enabled: false
2016-06-02 11:05:42 +05:30
# Prefer delegate method for delegations.
Rails/Delegate:
2015-04-26 12:48:37 +05:30
Enabled: false
2016-06-02 11:05:42 +05:30
# Prefer `find_by` over `where.first`.
Rails/FindBy:
Enabled: true
2016-06-02 11:05:42 +05:30
# Prefer `all.find_each` over `all.find`.
Rails/FindEach:
Enabled: true
2015-04-26 12:48:37 +05:30
2016-06-02 11:05:42 +05:30
# Prefer has_many :through to has_and_belongs_to_many.
2015-04-26 12:48:37 +05:30
Rails/HasAndBelongsToMany:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for calls to puts, print, etc.
2015-04-26 12:48:37 +05:30
Rails/Output:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for incorrect grammar when using methods like `3.day.ago`.
Rails/PluralizationGrammar:
Enabled: true
2016-06-02 11:05:42 +05:30
# Checks for `read_attribute(:attr)` and `write_attribute(:attr, val)`.
2015-04-26 12:48:37 +05:30
Rails/ReadWriteAttribute:
Enabled: false
2016-06-02 11:05:42 +05:30
# Checks the arguments of ActiveRecord scopes.
2015-04-26 12:48:37 +05:30
Rails/ScopeArgs:
Enabled: true
2015-04-26 12:48:37 +05:30
##################### RSpec ##################################
# Check that instances are not being stubbed globally.
RSpec/AnyInstance:
Enabled: false
# Check that the first argument to the top level describe is the tested class or
# module.
RSpec/DescribeClass:
Enabled: false
# Use `described_class` for tested class / module.
RSpec/DescribeMethod:
Enabled: false
# Checks that the second argument to top level describe is the tested method
# name.
RSpec/DescribedClass:
Enabled: false
# Checks for long example.
RSpec/ExampleLength:
Enabled: false
Max: 5
# Do not use should when describing your tests.
RSpec/ExampleWording:
Enabled: false
CustomTransform:
be: is
have: has
not: does not
IgnoredWords: []
# Checks the file and folder naming of the spec file.
RSpec/FilePath:
Enabled: false
CustomTransform:
RuboCop: rubocop
RSpec: rspec
# Checks if there are focused specs.
RSpec/Focus:
Enabled: true
# Checks for the usage of instance variables.
RSpec/InstanceVariable:
Enabled: false
# Checks for multiple top-level describes.
RSpec/MultipleDescribes:
Enabled: false
# Enforces the usage of the same method on all negative message expectations.
RSpec/NotToNot:
EnforcedStyle: not_to
Enabled: true
# Prefer using verifying doubles over normal doubles.
RSpec/VerifiedDoubles:
Enabled: false