MaxLap/activerecord_where_assoc

View on GitHub
.rubocop.yml

Summary

Maintainability
Test Coverage
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