.rubocop.yml
require: rubocop-performance
inherit_mode:
merge:
- Include
- Exclude
AllCops:
Exclude:
- 'bin/*'
TargetRubyVersion: 2.3
Layout/AccessModifierIndentation:
EnforcedStyle: indent
SupportedStyles:
- outdent
- indent
Layout/ClassStructure:
Enabled: true
Categories:
module_inclusion:
- include
- prepend
- extend
ExpectedOrder:
- module_inclusion
- constants
- public_class_methods
- initializer
- public_methods
- protected_methods
- private_methods
Layout/EmptyLinesAroundClassBody:
EnforcedStyle: empty_lines_except_namespace
Layout/EmptyLinesAroundModuleBody:
EnforcedStyle: empty_lines_except_namespace
Layout/EndAlignment:
AutoCorrect: true
Layout/ExtraSpacing:
AllowForAlignment: false
Layout/FirstArrayElementIndentation:
EnforcedStyle: consistent
Layout/FirstArrayElementLineBreak:
Enabled: true # default: false
Layout/FirstHashElementIndentation:
EnforcedStyle: consistent
Layout/FirstHashElementLineBreak:
Enabled: true # default: false
Layout/FirstMethodArgumentLineBreak:
Enabled: true # default: false
Layout/FirstParameterIndentation:
EnforcedStyle: consistent
Layout/HashAlignment:
EnforcedHashRocketStyle: key
EnforcedColonStyle: key
EnforcedLastArgumentHashStyle: always_inspect
Layout/LineLength:
Max: 100 # default: 80
IgnoredPatterns:
- "^ *#" # comments
Layout/MultilineAssignmentLayout:
Enabled: true # default: false
EnforcedStyle: new_line
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
Layout/MultilineOperationIndentation:
EnforcedStyle: indented
Layout/ParameterAlignment:
EnforcedStyle: with_fixed_indentation
Layout/SpaceAroundOperators:
AllowForAlignment: false
Layout/SpaceBeforeFirstArg:
AllowForAlignment: false
Lint/UnusedMethodArgument:
AllowUnusedKeywordArguments: true
IgnoreEmptyMethods: true
Metrics/AbcSize:
Max: 20 # default: 15
Metrics/BlockLength:
Max: 25 # default: 25
Metrics/ClassLength:
Max: 100 # default: 100
Metrics/CyclomaticComplexity:
Max: 10 # default: 6
Metrics/MethodLength:
Max: 12 # default: 10
Metrics/ModuleLength:
Max: 100 # default: 100
Metrics/PerceivedComplexity:
Max: 10 # default: 7
Performance/ChainArrayAllocation:
Enabled: true # default: false
Performance/OpenStruct:
Enabled: true # default: false
Naming/VariableNumber:
EnforcedStyle: snake_case
Style/AccessModifierDeclarations:
Enabled: false # default: true
Style/AndOr:
EnforcedStyle: conditionals
Style/AsciiComments:
Enabled: false # default: true
Style/AutoResourceCleanup:
Enabled: true # default: false
Style/BracesAroundHashParameters:
Enabled: false # default: true
Style/CollectionMethods:
Enabled: true # default: false
Style/DateTime:
Enabled: true # default: false
Style/Documentation:
Enabled: false # default: true
Style/MethodCalledOnDoEndBlock:
Enabled: true # default: false
Style/MethodCallWithArgsParentheses:
Enabled: true # default: false
Exclude:
- "Gemfile"
IgnoreMacros: true
IgnoredMethods:
- include
- load
- print
- private
- protected
- public
- puts
- raise
- require
- require_relative
# rake
- desc
- namespace
- task
Style/ModuleFunction:
EnforcedStyle: extend_self
Style/ReturnNil:
Enabled: true # default: false
Style/SignalException:
EnforcedStyle: only_raise
Style/StringLiterals:
EnforcedStyle: double_quotes
Style/StringLiteralsInInterpolation:
EnforcedStyle: double_quotes
Style/TrailingCommaInArguments:
EnforcedStyleForMultiline: no_comma
Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: comma
Style/TrailingCommaInHashLiteral:
EnforcedStyleForMultiline: comma