AgileVentures/LocalSupport

View on GitHub
.rubocop.yml

Summary

Maintainability
Test Coverage
AllCops:
  DisabledByDefault: true
  DisplayCopNames: true
  DisplayStyleGuide: true
  Exclude:
    - 'spec/spec_helper.rb'
    - 'db/**/*'
    - 'config/**/*'
    - 'script/**/*'
    - 'bin/**/*'
  TargetRubyVersion: 2.3

Rails:
 Enabled: true

# inherit_from:
#   - enabled.yml
#   - disabled.yml


# ******** ENABLED ********

Layout/AccessModifierIndentation:
  Description: Check indentation of private/protected visibility modifiers.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected'
  Enabled: true

Naming/AccessorMethodName:
  Description: Check the naming of accessor methods for get_/set_.
  Enabled: true

Style/Alias:
  Description: 'Use alias_method instead of alias.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
  Enabled: true

Style/AndOr:
  Description: 'Use &&/|| instead of and/or.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-and-or-or'
  Enabled: false # See https://github.com/AgileVentures/LocalSupport/pull/455#issuecomment-307068564

Style/ArrayJoin:
  Description: 'Use Array#join instead of Array#*.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
  Enabled: true

Style/AsciiComments:
  Description: 'Use only ascii symbols in comments.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
  Enabled: true

Naming/AsciiIdentifiers:
  Description: 'Use only ascii symbols in identifiers.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
  Enabled: true

Style/Attr:
  Description: 'Checks for uses of Module#attr.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
  Enabled: true

Style/BeginBlock:
  Description: 'Avoid the use of BEGIN blocks.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-BEGIN-blocks'
  Enabled: true

Style/BarePercentLiterals:
  Description: 'Checks if usage of %() or %Q() matches configuration.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q-shorthand'
  Enabled: true

Style/BlockComments:
  Description: 'Do not use block comments.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-block-comments'
  Enabled: true

Layout/BlockEndNewline:
  Description: 'Put end statement of multiline block on its own line.'
  Enabled: true

Style/BlockDelimiters:
  Description: >-
                Avoid using {...} for multi-line blocks (multiline chaining is
                always ugly).
                Prefer {...} over do...end for single-line blocks.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
  Enabled: true

Style/BracesAroundHashParameters:
  Description: 'Enforce braces style around hash parameters.'
  Enabled: true

Style/CaseEquality:
  Description: 'Avoid explicit use of the case equality operator(===).'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
  Enabled: true

Layout/CaseIndentation:
  Description: 'Indentation of when in a case/when/[else/]end.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-when-to-case'
  Enabled: true

Style/CharacterLiteral:
  Description: 'Checks for uses of character literals.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
  Enabled: true

Naming/ClassAndModuleCamelCase:
  Description: 'Use CamelCase for classes and modules.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#camelcase-classes'
  Enabled: true

Style/ClassAndModuleChildren:
  Description: 'Checks style of children classes and modules.'
  Enabled: true

Style/ClassCheck:
  Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
  Enabled: true

Style/ClassMethods:
  Description: 'Use self when defining module/class methods.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#def-self-class-methods'
  Enabled: true

Style/ClassVars:
  Description: 'Avoid the use of class variables.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
  Enabled: true

Layout/ClosingParenthesisIndentation:
  Description: 'Checks the indentation of hanging closing parentheses.'
  Enabled: true

Style/ColonMethodCall:
  Description: 'Do not use :: for method call.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
  Enabled: true

Style/CommandLiteral:
  Description: 'Use `` or %x around command literals.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-x'
  Enabled: true


Naming/ConstantName:
  Description: 'Constants should use SCREAMING_SNAKE_CASE.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#screaming-snake-case'
  Enabled: true

Style/DefWithParentheses:
  Description: 'Use def with parentheses when there are arguments.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
  Enabled: true

Style/PreferredHashMethods:
  Description: 'Checks for use of deprecated Hash methods.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-key'
  Enabled: true

Layout/DotPosition:
  Description: 'Checks the position of the dot in multi-line method calls.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
  EnforcedStyle: leading
  Enabled: true

Style/DoubleNegation:
  Description: 'Checks for uses of double negation (!!).'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
  Enabled: true

Style/EachWithObject:
  Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
  Enabled: true

Style/EmptyElse:
  Description: 'Avoid empty else-clauses.'
  Enabled: true

Style/EmptyLiteral:
  Description: 'Prefer literals to Array.new/Hash.new/String.new.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
  Enabled: true

Style/EndBlock:
  Description: 'Avoid the use of END blocks.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-END-blocks'
  Enabled: true


Style/EvenOdd:
  Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
  Enabled: true

Naming/FileName:
  Description: 'Use snake_case for source file names.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
  Enabled: true

Lint/FlipFlop:
  Description: 'Checks for flip flops'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
  Enabled: true

Style/For:
  Description: 'Checks use of for or each in multiline loops.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-for-loops'
  Enabled: true

Style/FormatString:
  Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
  Enabled: true

Style/GlobalVars:
  Description: 'Do not introduce global variables.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
  Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
  Enabled: true

Style/GuardClause:
  Description: 'Check for conditionals that can be replaced with guard clauses'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
  Enabled: true

Style/HashSyntax:
  Description: >-
                 Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
                 { :a => 1, :b => 2 }.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-literals'
  Enabled: true

Style/IfUnlessModifier:
  Description: >-
                 Favor modifier if/unless usage when you have a
                 single-line body.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
  Enabled: true

Style/IfWithSemicolon:
  Description: 'Do not use if x; .... Use the ternary operator instead.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
  Enabled: true


Style/InfiniteLoop:
  Description: 'Use Kernel#loop for infinite loops.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#infinite-loop'
  Enabled: true

Style/Lambda:
  Description: 'Use the new lambda literal syntax for single-line blocks.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
  Enabled: true

Style/LambdaCall:
  Description: 'Use lambda.call(...) instead of lambda.(...).'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
  Enabled: true

Style/LineEndConcatenation:
  Description: >-
                 Use \ instead of + or << to concatenate two string literals at
                 line end.
  Enabled: true

Style/MethodCallWithoutArgsParentheses:
  Description: 'Do not use parentheses for method calls with no arguments.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-args-no-parens'
  Enabled: true


Naming/MethodName:
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
  Enabled: true



Style/ModuleFunction:
  Description: 'Checks for usage of `extend self` in modules.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
  Enabled: true

Style/MultilineBlockChain:
  Description: 'Avoid multi-line chains of blocks.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
  Enabled: true

Layout/MultilineBlockLayout:
  Description: 'Ensures newlines after multiline block do statements.'
  Enabled: true

Style/MultilineIfThen:
  Description: 'Do not use then for multi-line if/unless.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-then'
  Enabled: true

Layout/MultilineOperationIndentation:
  Description: >-
                 Checks indentation of binary operations that span more than
                 one line.
  Enabled: true

Style/MultilineTernaryOperator:
  Description: >-
                 Avoid multi-line ?: (the ternary operator);
                 use if/unless instead.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-ternary'
  Enabled: true

Style/NegatedIf:
  Description: >-
                 Favor unless over if for negative conditions
                 (or control flow or).
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
  Enabled: true

Style/NegatedWhile:
  Description: 'Favor until over while for negative conditions.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
  Enabled: true

Style/NestedTernaryOperator:
  Description: 'Use one expression per branch in a ternary operator.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-ternary'
  Enabled: true

Style/Next:
  Description: 'Use `next` to skip iteration instead of a condition at the end.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
  Enabled: true

Style/NilComparison:
  Description: 'Prefer x.nil? to x == nil.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
  Enabled: true

Style/NonNilCheck:
  Description: 'Checks for redundant nil checks.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks'
  Enabled: true

Style/Not:
  Description: 'Use ! instead of not.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
  Enabled: false # See https://github.com/AgileVentures/LocalSupport/pull/455#issuecomment-307068564

Style/NumericLiterals:
  Description: >-
                 Add underscores to large numeric literals to improve their
                 readability.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
  Enabled: true


Naming/BinaryOperatorParameterName:
  Description: 'When defining binary operators, name the argument other.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
  Enabled: true

Style/OptionalArguments:
  Description: >-
                 Checks for optional arguments that do not appear at the end
                 of the argument list
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#optional-arguments'
  Enabled: true

Style/ParallelAssignment:
  Description: >-
                  Check for simple usages of parallel assignment.
                  It will only warn when the number of variables
                  matches on both sides of the assignment.
                  This also provides performance benefits
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parallel-assignment'
  Enabled: true

Style/ParenthesesAroundCondition:
  Description: >-
                 Don't use parentheses around the condition of an
                 if/unless/while.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-parens-if'
  Enabled: true

Style/PercentLiteralDelimiters:
  Description: 'Use `%`-literal delimiters consistently'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
  Enabled: true

Style/PercentQLiterals:
  Description: 'Checks if uses of %Q/%q match the configured preference.'
  Enabled: true

Style/PerlBackrefs:
  Description: 'Avoid Perl-style regex back references.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
  Enabled: true

Naming/PredicateName:
  Description: 'Check the names of predicate methods.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
  Enabled: true

Style/Proc:
  Description: 'Use proc instead of Proc.new.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
  Enabled: true

Style/RaiseArgs:
  Description: 'Checks the arguments passed to raise/fail.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
  Enabled: true

Style/RedundantBegin:
  Description: "Don't use begin blocks when they are not needed."
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#begin-implicit'
  Enabled: true

Style/RedundantException:
  Description: "Checks for an obsolete RuntimeException argument in raise/fail."
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-runtimeerror'
  Enabled: true

Style/RedundantReturn:
  Description: "Don't use return where it's not required."
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-return'
  Enabled: true

Style/RegexpLiteral:
  Description: 'Use / or %r around regular expressions.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
  Enabled: true

Layout/RescueEnsureAlignment:
  Description: 'Align rescues and ensures correctly.'
  Enabled: true

Style/RescueModifier:
  Description: 'Avoid using rescue in its modifier form.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-rescue-modifiers'
  Enabled: true

Style/SelfAssignment:
  Description: >-
                 Checks for places where self-assignment shorthand should have
                 been used.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
  Enabled: true

Style/SignalException:
  Description: 'Checks for proper usage of fail and raise.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
  Enabled: true

Style/SpecialGlobalVars:
  Description: 'Avoid Perl-style global variables.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
  Enabled: true

Style/StringLiterals:
  Description: 'Checks if uses of quotes match the configured preference.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
  EnforcedStyle: single_quotes
  Enabled: true

Style/StringLiteralsInInterpolation:
  Description: >-
                 Checks if uses of quotes inside expressions in interpolated
                 strings match the configured preference.
  EnforcedStyle: single_quotes
  Enabled: true

Style/StructInheritance:
  Description: 'Checks for inheritance from Struct.new.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new'
  Enabled: true

Style/SymbolLiteral:
  Description: 'Use plain symbols instead of string symbols when possible.'
  Enabled: true

Style/SymbolProc:
  Description: 'Use symbols as procs instead of blocks when possible.'
  Enabled: true

Style/TrivialAccessors:
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
  Enabled: true

Naming/VariableName:
  Description: 'Use the configured style when naming variables.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars'
  Enabled: true


Style/UnlessElse:
  Description: >-
                 Do not use unless with else. Rewrite these with the positive
                 case first.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-else-with-unless'
  Enabled: true

Style/RedundantCapitalW:
  Description: 'Checks for %W when interpolation is not needed.'
  Enabled: true

Style/RedundantPercentQ:
  Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q'
  Enabled: true

Style/TrailingUnderscoreVariable:
  Description: >-
                 Checks for the usage of unneeded trailing underscores at the
                 end of parallel variable assignment.
  Enabled: true

Style/VariableInterpolation:
  Description: >-
                 Don't interpolate global, instance and class variables
                 directly in strings.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
  Enabled: true

Style/WhenThen:
  Description: 'Use when x then ... for one-line cases.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
  Enabled: true

Style/WhileUntilDo:
  Description: 'Checks for redundant do after while or until.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-while-do'
  Enabled: true
# enable for later challenge

  # Align ends correctly.
Layout/EndAlignment:
  # The value `keyword` means that `end` should be aligned with the matching
  # keyword (if, while, etc.).
  # The value `variable` means that in assignments, `end` should be aligned
  # with the start of the variable on the left hand side of `=`. In all other
  # situations, `end` should still be aligned with the keyword.
  EnforcedStyleAlignWith: keyword
  AutoCorrect: false
  Enabled: true

Lint/AmbiguousOperator:
  Description: >-
                 Checks for ambiguous operators in the first argument of a
                 method invocation without parentheses.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
  Enabled: true

Lint/AmbiguousRegexpLiteral:
  Description: >-
                 Checks for ambiguous regexp literals in the first argument of
                 a method invocation without parenthesis.
  Enabled: true

Lint/AssignmentInCondition:
  Description: "Don't use assignment in conditions."
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
  Enabled: true

Layout/BlockAlignment:
  Description: 'Align block ends correctly.'
  Enabled: true

Lint/CircularArgumentReference:
  Description: "Don't refer to the keyword argument in the default value."
  Enabled: true

Layout/ConditionPosition:
  Description: >-
                 Checks for condition placed in a confusing position relative to
                 the keyword.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
  Enabled: true

Lint/Debugger:
  Description: 'Check for debugger calls.'
  Enabled: true

Lint/DeprecatedClassMethods:
  Description: 'Check for deprecated class method calls.'
  Enabled: true

Lint/DuplicateMethods:
  Description: 'Check for duplicate methods calls.'
  Enabled: true

Lint/EachWithObjectArgument:
  Description: 'Check for immutable argument given to each_with_object.'
  Enabled: true

Lint/ElseLayout:
  Description: 'Check for odd code arrangement in an else block.'
  Enabled: true

Lint/EmptyEnsure:
  Description: 'Checks for empty ensure block.'
  Enabled: true

Lint/EmptyInterpolation:
  Description: 'Checks for empty string interpolation.'
  Enabled: true

Lint/EndInMethod:
  Description: 'END blocks should not be placed inside method definitions.'
  Enabled: true

Layout/DefEndAlignment:
  # The value `def` means that `end` should be aligned with the def keyword.
  # The value `start_of_line` means that `end` should be aligned with method
  # calls like `private`, `public`, etc, if present in front of the `def`
  # keyword on the same line.
  EnforcedStyleAlignWith: start_of_line
  AutoCorrect: false
  Enabled: true

Lint/RescueException:
  Description: 'Avoid rescuing the Exception class.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-blind-rescues'
  Enabled: true

Lint/RedundantStringCoercion:
  Description: 'Checks for Object#to_s usage in string interpolation.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-to-s'
  Enabled: true

Lint/UnusedBlockArgument:
  Description: 'Checks for unused block arguments.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
  Enabled: true

Lint/UnusedMethodArgument:
  Description: 'Checks for unused method arguments.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
  Enabled: true

Lint/UnreachableCode:
  Description: 'Unreachable code.'
  Enabled: true

Lint/UselessAccessModifier:
  Description: 'Checks for useless access modifiers.'
  Enabled: true

Metrics/AbcSize:
  # The ABC size is a calculated magnitude, so this number can be a Fixnum or
  # a Float.
  Max: 15
  Description: >-
                 A calculated magnitude based on number of assignments,
                 branches, and conditions.
  Reference: 'http://c2.com/cgi/wiki?AbcMetric'
  Enabled: true

Metrics/BlockNesting:
  Max: 3
  Description: 'Avoid excessive block nesting'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
  Enabled: true

Metrics/ClassLength:
  CountComments: false  # count full line comments?
  Max: 100
  Description: 'Avoid classes longer than 100 lines of code.'
  Enabled: true

Metrics/ModuleLength:
  CountComments: false  # count full line comments?
  Max: 100
  Description: 'Avoid modules longer than 100 lines of code.'
  Enabled: true

# Avoid complex methods.
Metrics/CyclomaticComplexity:
  Max: 6
  Description: >-
                 A complexity metric that is strongly correlated to the number
                 of test cases needed to validate a method.
  Enabled: true

Metrics/LineLength:
  Max: 90
  # To make it possible to copy or click on URIs in the code, we allow lines
  # contaning a URI to be longer than Max.
  AllowURI: true
  URISchemes:
    - http
    - https
  Description: 'Limit lines to 90 characters.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
  Enabled: true

Metrics/MethodLength:
  CountComments: false  # count full line comments?
  Max: 7
  Description: 'Avoid methods longer than 10 lines of code.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
  Enabled: true

Metrics/ParameterLists:
  Max: 5
  CountKeywordArgs: true
  Description: 'Avoid parameter lists longer than three or four parameters.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
  Enabled: true

Metrics/PerceivedComplexity:
  Max: 7
  Description: >-
                 A complexity metric geared towards measuring complexity for a
                 human reader.
  Enabled: true

Rails/ActionFilter:
  Description: 'Enforces consistent use of action filter methods.'
  Enabled: true

Rails/Date:
  Description: >-
                  Checks the correct usage of date aware methods,
                  such as Date.today, Date.current etc.
  Enabled: true

Rails/Delegate:
  Description: 'Prefer delegate method for delegations.'
  Enabled: true

Rails/FindBy:
  Description: 'Prefer find_by over where.first.'
  Enabled: true

Rails/FindEach:
  Description: 'Prefer all.find_each over all.find.'
  Enabled: true

Rails/HasAndBelongsToMany:
  Description: 'Prefer has_many :through to has_and_belongs_to_many.'
  Enabled: true

Rails/Output:
  Description: 'Checks for calls to puts, print, etc.'
  Enabled: true

Rails/ReadWriteAttribute:
  Description: >-
                 Checks for read_attribute(:attr) and
                 write_attribute(:attr, val).
  Enabled: true

Rails/ScopeArgs:
  Description: 'Checks the arguments of ActiveRecord scopes.'
  Enabled: true

Rails/TimeZone:
  Description: 'Checks the correct usage of time zone aware methods.'
  StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
  Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
  Enabled: true

Rails/Validation:
  Description: 'Use validates :attribute, hash of validations.'
  Enabled: true

# ******** DISABLED ********


Layout/EmptyLinesAroundClassBody:
  Description: Keeps track of empty lines around class bodies.
  Enabled: false
  EnforcedStyle: empty_lines
  SupportedStyles:
  - empty_lines
  - no_empty_lines


Style/Documentation:
  Description: Document classes and non-namespace modules.
  Enabled: false

Style/SingleLineBlockParams:
  Description: Enforces the names of some block params.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#reduce-blocks
  Enabled: false
  Methods:
  - reduce:
    - a
    - e
  - inject:
    - a
    - e

Lint/UselessAssignment:
  Description: Checks for useless assignment to a local variable.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars
  Enabled: false

Layout/TrailingEmptyLines:
  Description: Checks trailing blank lines and final newline.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#newline-eof
  Enabled: false
  EnforcedStyle: final_newline
  SupportedStyles:
  - final_newline
  - final_blank_line

Style/RedundantSelf:
  Description: Don't use self where it's not needed.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-self-unless-required
  Enabled: false

Style/Semicolon:
  Description: Don't use semicolons to terminate expressions.
  StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-semicolon
  Enabled: false
  AllowAsExpressionSeparator: false

Layout/ArrayAlignment:
  Description: >-
                 Align the elements of an array literal if they span more than
                 one line.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays'
  Enabled: false

Layout/HashAlignment:
  Description: >-
                 Align the elements of a hash literal if they span more than
                 one line.
  Enabled: false

Layout/ParameterAlignment:
  Description: >-
                 Align the parameters of a method call if they span more
                 than one line.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
  Enabled: false


Style/CommentAnnotation:
  Description: >-
                 Checks formatting of special comments
                 (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
  Enabled: false

Layout/CommentIndentation:
  Description: 'Indentation of comments.'
  Enabled: false

Layout/ElseAlignment:
  Description: 'Align elses and elsifs correctly.'
  Enabled: false

Layout/EmptyLineBetweenDefs:
  Description: 'Use empty lines between defs.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#empty-lines-between-methods'
  Enabled: false

Layout/EmptyLines:
  Description: "Don't use several empty lines in a row."
  Enabled: false

Layout/EmptyLinesAroundAccessModifier:
  Description: "Keep blank lines around access modifiers."
  Enabled: false

Layout/EmptyLinesAroundBlockBody:
  Description: "Keeps track of empty lines around block bodies."
  Enabled: false

Layout/EmptyLinesAroundModuleBody:
  Description: "Keeps track of empty lines around module bodies."
  Enabled: false

Layout/EmptyLinesAroundMethodBody:
  Description: "Keeps track of empty lines around method bodies."
  Enabled: false


Layout/EndOfLine:
  Description: 'Use Unix-style line endings.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#crlf'
  Enabled: false

Layout/ExtraSpacing:
  Description: 'Do not use unnecessary spacing.'
  Enabled: false

Layout/InitialIndentation:
  Description: >-
    Checks the indentation of the first non-blank non-comment line in a file.
  Enabled: false

Layout/FirstArgumentIndentation:
  Description: 'Checks the indentation of the first parameter in a method call.'
  Enabled: false

Layout/IndentationConsistency:
  Description: 'Keep indentation straight.'
  Enabled: false

Layout/IndentationWidth:
  Description: 'Use 2 spaces for indentation.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
  Enabled: false

Layout/FirstArrayElementIndentation:
  Description: >-
                 Checks the indentation of the first element in an array
                 literal.
  Enabled: false

Layout/FirstHashElementIndentation:
  Description: 'Checks the indentation of the first key in a hash literal.'
  Enabled: false

Layout/LeadingCommentSpace:
  Description: 'Comments should start with a space.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-space'
  Enabled: false

Style/MethodDefParentheses:
  Description: >-
                 Checks if the method definitions have or don't have
                 parentheses.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
  Enabled: false

Style/OneLineConditional:
  Description: >-
                 Favor the ternary operator(?:) over
                 if/then/else/end constructs.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
  Enabled: false

Style/SingleLineMethods:
  Description: 'Avoid single-line methods.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
  Enabled: false

Layout/SpaceBeforeFirstArg:
  Description: >-
                 Checks that exactly one space is used between a method name
                 and the first argument for method calls without parentheses.
  Enabled: false

Layout/SpaceAfterColon:
  Description: 'Use spaces after colons.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
  Enabled: false

Layout/SpaceAfterComma:
  Description: 'Use spaces after commas.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
  Enabled: false

Layout/SpaceAroundKeyword:
  Description: 'Use spaces around if/elsif/unless/while/until/case/when.'
  Enabled: false

Layout/SpaceAfterNot:
  Description: Tracks redundant space after the ! operator.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-bang'
  Enabled: false

Layout/SpaceAfterSemicolon:
  Description: 'Use spaces after semicolons.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
  Enabled: false

Layout/SpaceBeforeBlockBraces:
  Description: >-
                 Checks that the left block brace has or doesn't have space
                 before it.
  Enabled: false

Layout/SpaceBeforeComma:
  Description: 'No spaces before commas.'
  Enabled: false

Layout/SpaceBeforeComment:
  Description: >-
                 Checks for missing space between code and a comment on the
                 same line.
  Enabled: false

Layout/SpaceBeforeSemicolon:
  Description: 'No spaces before semicolons.'
  Enabled: false

Layout/SpaceInsideBlockBraces:
  Description: >-
                 Checks that block braces have or don't have surrounding space.
                 For blocks taking parameters, checks that the left brace has
                 or doesn't have trailing space.
  Enabled: false

Layout/SpaceAroundBlockParameters:
  Description: 'Checks the spacing inside and after block parameters pipes.'
  Enabled: false

Layout/SpaceAroundEqualsInParameterDefault:
  Description: >-
                 Checks that the equals signs in parameter default assignments
                 have or don't have surrounding space depending on
                 configuration.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-around-equals'
  Enabled: false

Layout/SpaceAroundOperators:
  Description: 'Use a single space around operators.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
  Enabled: false

Layout/SpaceInsideReferenceBrackets:
  Description: 'No spaces after [ or before ].'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
  Enabled: false

Layout/SpaceInsideArrayLiteralBrackets: 
  Description: 'No spaces after [ or before ].'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
  Enabled: false

Layout/SpaceInsideHashLiteralBraces:
  Description: "Use spaces inside hash literal braces - or don't."
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
  Enabled: false

Layout/SpaceInsideParens:
  Description: 'No spaces after ( or before ).'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
  Enabled: false

Layout/SpaceInsideRangeLiteral:
  Description: 'No spaces inside range literals.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-inside-range-literals'
  Enabled: false

Layout/SpaceInsideStringInterpolation:
  Description: 'Checks for padding/surrounding spaces inside string interpolation.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#string-interpolation'
  Enabled: false

Layout/Tab:
  Description: 'No hard tabs.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
  Enabled: false

Style/TrailingCommaInArrayLiteral:
  Description: 'Checks for trailing comma in literals.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
  Enabled: false

Style/TrailingCommaInArguments:
  Description: 'Checks for trailing comma in parameter lists.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
  Enabled: false

Layout/TrailingWhitespace:
  Description: 'Avoid trailing whitespace.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-whitespace'
  Enabled: false

Style/WhileUntilModifier:
  Description: >-
                 Favor modifier while/until usage when you have a
                 single-line body.
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
  Enabled: false
# enable for later challenge

Style/WordArray:
  Description: 'Use %w or %W for arrays of words.'
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
  Enabled: false
# enable for later challenge