mattboldt/guac

View on GitHub
.rubocop.yml

Summary

Maintainability
Test Coverage
# This is the configuration used to check the rubocop source code.

require:
  - rubocop/cop/internal_affairs
  - rubocop-rspec

AllCops:
  Exclude:
    - 'vendor/**/*'
    - 'spec/fixtures/**/*'
    - 'tmp/**/*'
  TargetRubyVersion: 2.4

Naming/PredicateName:
  # Method define macros for dynamically generated method.
  MethodDefinitionMacros:
    - define_method
    - define_singleton_method
    - def_node_matcher
    - def_node_search

Style/FrozenStringLiteralComment:
  Enabled: false

Style/FormatStringToken:
  # Because we parse a lot of source codes from strings. Percent arrays
  # look like unannotated format string tokens to this cop.
  Exclude:
    - spec/**/*

Style/IpAddresses:
  # The test for this cop includes strings that would cause offenses
  Exclude:
    - spec/rubocop/cop/style/ip_addresses_spec.rb

# Checks if uses of quotes match the configured preference.
Style/StringLiterals:
  Enabled: false

Style/PercentLiteralDelimiters:
  PreferredDelimiters:
    '%i': '()'

# Don't complain about top-level class documentation comments.
Documentation:
  Enabled: false

# Don't complain about long block lengths.
Metrics/BlockLength:
  Enabled: false

Metrics/ClassLength:
  CountComments: false # count full line comments?
  Max: 150

Metrics/LineLength:
  Max: 105
  IgnoredPatterns:
    - '(\A|\s)#' # Don't get upset at comments longer than the line length.
    - 'authorize %' # Exclude Pundit authorization calls
    - 'belongs_to :'
    - 'has_many :'
    - 'has_and_belongs_to_many :'
    - 'has_one :'

Metrics/ModuleLength:
  CountComments: false # count full line comments?
  Max: 150

Style/AndOr:
  # Whether `and` and `or` are banned only in conditionals (conditionals)
  # or completely (always).
  EnforcedStyle: always

Style/ClassAndModuleChildren:
  Enabled: false

Style/Lambda:
  EnforcedStyle: literal

Layout/EmptyLinesAroundClassBody:
  Enabled: false

Layout/EmptyLinesAroundBlockBody:
  Enabled: false

Layout/EndAlignment:
  EnforcedStyleAlignWith: variable

Style/GuardClause:
  Enabled: false

Style/PercentLiteralDelimiters:
  Enabled: false

Style/TrailingCommaInArguments:
  Enabled: false

Style/TrailingCommaInArrayLiteral:
  Enabled: false

Style/TrailingCommaInHashLiteral:
  Enabled: false

Layout/EndOfLine:
  EnforcedStyle: lf

Layout/ClassStructure:
  Enabled: true
  Categories:
    module_inclusion:
      - include
      - prepend
      - extend
  ExpectedOrder:
    - module_inclusion
    - constants
    - public_class_methods
    - initializer
    - instance_methods
    - protected_methods
    - private_methods

Layout/IndentHeredoc:
  EnforcedStyle: powerpack

# Trailing white space is meaningful in code examples
Layout/TrailingWhitespace:
  AllowInHeredoc: true

Lint/AmbiguousBlockAssociation:
  Exclude:
    - 'spec/**/*.rb'

Lint/InterpolationCheck:
  Exclude:
    - 'spec/**/*.rb'

Lint/UselessAccessModifier:
  MethodCreatingMethods:
    - 'def_matcher'
    - 'def_node_matcher'

Lint/BooleanSymbol:
  Enabled: false

Metrics/BlockLength:
  Exclude:
    - 'Rakefile'
    - '**/*.rake'
    - 'spec/**/*.rb'

Metrics/ModuleLength:
  Exclude:
    - 'spec/**/*.rb'

RSpec/PredicateMatcher:
  EnforcedStyle: explicit

RSpec/NestedGroups:
  Max: 7