.rubocop.yml
AllCops:
DisplayCopNames: true
Include:
- Rakefile
- config.ru
- bin/console
- bin/fixcop
- bin/testall
- gemfiles/*.gemfile
- lib/**/*.rake
Exclude:
- db/schema.rb
- _*/**/*
- private/**/*
- public/**/*
TargetRubyVersion: 2.1
TargetRailsVersion: 5.1
Layout/EmptyLines:
Enabled: false
Layout/EmptyLineBetweenDefs:
NumberOfEmptyLines: [1, 2]
Layout/FirstParameterIndentation:
IndentationWidth: 4
Layout/IndentArray:
EnforcedStyle: align_brackets
Layout/IndentHash:
EnforcedStyle: align_braces
Layout/MultilineArrayBraceLayout:
EnforcedStyle: new_line
Layout/MultilineHashBraceLayout:
EnforcedStyle: new_line
Lint/EmptyWhen:
Enabled: false
Lint/MissingCopEnableDirective:
Enabled: false
# Annoying when used with some api that have blocks with sometimes useful parameters
Lint/UnusedBlockArgument:
Enabled: false
# Annoying because it wines for &block parameters, which helps make signature more explicit
Lint/UnusedMethodArgument:
Enabled: false
Metrics/AbcSize:
Enabled: false
Metrics/BlockNesting:
Enabled: false
Metrics/BlockLength:
Enabled: false
Metrics/ClassLength:
Enabled: false
Metrics/CyclomaticComplexity:
Enabled: false
# Really, you aim for less than that, but we won't bug you unless you reach 150
Metrics/LineLength:
IgnoreCopDirectives: true
Max: 150
Metrics/MethodLength:
Enabled: false
Metrics/ModuleLength:
Enabled: false
Metrics/ParameterLists:
Enabled: false
Metrics/PerceivedComplexity:
Enabled: false
Naming/FileName:
Enabled: false
Naming/VariableNumber:
Enabled: false
Performance/RedundantBlockCall:
Enabled: false
Rails/FilePath:
Enabled: false
Style/AsciiComments:
Enabled: false
Style/ClassAndModuleChildren:
Enabled: false
Style/ConditionalAssignment:
Enabled: false
Style/Documentation:
Enabled: false
# Can use a single nil in the else clause to remove the warning
Style/EmptyElse:
EnforcedStyle: empty
# Need String.new to have a non-freezed empty string supported down to 2.1
Style/EmptyLiteral:
Enabled: false
Style/EmptyMethod:
Enabled: false
Style/FormatStringToken:
Enabled: false
# We target 2.2 to avoid cops that are not backward compatible, but we want this cop!
Style/FrozenStringLiteralComment:
EnforcedStyle: always
Style/GuardClause:
Enabled: false
Style/IfUnlessModifier:
Enabled: false
Style/InverseMethods:
InverseMethods:
:present?: :blank?
Exclude:
- bin/*
- gemfiles/*
Style/NegatedIf:
Enabled: false
Style/NumericPredicate:
Enabled: false
Style/PercentLiteralDelimiters:
Enabled: false
# We tend to prefer the explicit aspect of sometimes using self.
Style/RedundantSelf:
Enabled: false
# For a gem, i don't think it's our job to require 'English'
Style/SpecialGlobalVars:
Enabled: false
Style/StringLiterals:
EnforcedStyle: double_quotes
Style/SymbolArray:
EnforcedStyle: brackets
# Doesn't look right to force it in this case:
# where(belongs_to_reflection.foreign_type => value_class.base_class.name,
# belongs_to_reflection.foreign_key => values.first.id)
# But look better in some other cases. So disable
Style/TrailingCommaInArguments:
Enabled: false
Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: consistent_comma
Style/TrailingCommaInHashLiteral:
EnforcedStyleForMultiline: consistent_comma
Style/WordArray:
Enabled: false