AllCops:
  TargetRubyVersion: 1.9
Lint/ConditionPosition:
  Enabled: True

Lint/ElseLayout:
  Enabled: True

Lint/UnreachableCode:
  Enabled: True

Lint/UselessComparison:
  Enabled: True

Lint/EnsureReturn:
  Enabled: True

Lint/HandleExceptions:
  Enabled: True

Lint/LiteralInCondition:
  Enabled: True

Lint/ShadowingOuterLocalVariable:
  Enabled: True

Lint/LiteralInInterpolation:
  Enabled: True

Style/HashSyntax:
  Enabled: True

Style/RedundantReturn:
  Enabled: True

Layout/EndOfLine:
  Enabled: False

Lint/AmbiguousOperator:
  Enabled: True

Lint/AssignmentInCondition:
  Enabled: True

Layout/SpaceBeforeComment:
  Enabled: True

Style/AndOr:
  Enabled: True

Style/RedundantSelf:
  Enabled: True

Metrics/BlockLength:
  Enabled: False

# Method length is not necessarily an indicator of code quality
Metrics/MethodLength:
  Enabled: False

Metrics/ModuleLength:
  Enabled: True

Style/WhileUntilModifier:
  Enabled: True

Lint/AmbiguousRegexpLiteral:
  Enabled: True

Security/Eval:
  Enabled: True

Lint/BlockAlignment:
  Enabled: True

Lint/DefEndAlignment:
  Enabled: True

Lint/EndAlignment:
  Enabled: True

Lint/DeprecatedClassMethods:
  Enabled: True

Lint/Loop:
  Enabled: True

Lint/ParenthesesAsGroupedExpression:
  Enabled: True

Lint/RescueException:
  Enabled: True

Lint/StringConversionInInterpolation:
  Enabled: True

Lint/UnusedBlockArgument:
  Enabled: True

Lint/UnusedMethodArgument:
  Enabled: True

Lint/UselessAccessModifier:
  Enabled: True

Lint/UselessAssignment:
  Enabled: True

Lint/Void:
  Enabled: True

Layout/AccessModifierIndentation:
  Enabled: True

Naming/AccessorMethodName:
  Enabled: True

Style/Alias:
  Enabled: True

Layout/AlignArray:
  Enabled: True

Layout/AlignHash:
  Enabled: True

Layout/AlignParameters:
  Enabled: True

Metrics/BlockNesting:
  Enabled: True

Style/AsciiComments:
  Enabled: True

Style/Attr:
  Enabled: True

Style/BracesAroundHashParameters:
  Enabled: True

Style/CaseEquality:
  Enabled: True

Layout/CaseIndentation:
  Enabled: True

Style/CharacterLiteral:
  Enabled: True

Naming/ClassAndModuleCamelCase:
  Enabled: True

Style/ClassAndModuleChildren:
  Enabled: False

Style/ClassCheck:
  Enabled: True

# Class length is not necessarily an indicator of code quality
Metrics/ClassLength:
  Enabled: False

Style/ClassMethods:
  Enabled: True

Style/ClassVars:
  Enabled: True

Style/WhenThen:
  Enabled: True

Style/WordArray:
  Enabled: True

Style/UnneededPercentQ:
  Enabled: True

Layout/Tab:
  Enabled: True

Layout/SpaceBeforeSemicolon:
  Enabled: True

Layout/TrailingBlankLines:
  Enabled: True

Layout/SpaceInsideBlockBraces:
  Enabled: True

Layout/SpaceInsideBrackets:
  Enabled: True

Layout/SpaceInsideHashLiteralBraces:
  Enabled: True

Layout/SpaceInsideParens:
  Enabled: True

Layout/LeadingCommentSpace:
  Enabled: True

Layout/SpaceBeforeFirstArg:
  Enabled: True

Layout/SpaceAfterColon:
  Enabled: True

Layout/SpaceAfterComma:
  Enabled: True

Layout/SpaceAfterMethodName:
  Enabled: True

Layout/SpaceAfterNot:
  Enabled: True

Layout/SpaceAfterSemicolon:
  Enabled: True

Layout/SpaceAroundEqualsInParameterDefault:
  Enabled: True

Layout/SpaceAroundOperators:
  Enabled: True

Layout/SpaceBeforeBlockBraces:
  Enabled: True

Layout/SpaceBeforeComma:
  Enabled: True

Style/CollectionMethods:
  Enabled: True

Layout/CommentIndentation:
  Enabled: True

Style/ColonMethodCall:
  Enabled: True

Style/CommentAnnotation:
  Enabled: True

# 'Complexity' is very relative
Metrics/CyclomaticComplexity:
  Enabled: False

Naming/ConstantName:
  Enabled: True

Style/Documentation:
  Enabled: False

Style/DefWithParentheses:
  Enabled: True

Style/PreferredHashMethods:
  Enabled: True

Layout/DotPosition:
  EnforcedStyle: trailing

Style/DoubleNegation:
  Enabled: True

Style/EachWithObject:
  Enabled: True

Layout/EmptyLineBetweenDefs:
  Enabled: True

Layout/IndentArray:
  Enabled: True

Layout/IndentHash:
  Enabled: True

Layout/IndentationConsistency:
  Enabled: True

Layout/IndentationWidth:
  Enabled: True

Layout/EmptyLines:
  Enabled: True

Layout/EmptyLinesAroundAccessModifier:
  Enabled: True

Style/EmptyLiteral:
  Enabled: True

# Configuration parameters: AllowURI, URISchemes.
Metrics/LineLength:
  Enabled: False

Style/MethodCallWithoutArgsParentheses:
  Enabled: True

Style/MethodDefParentheses:
  Enabled: True

Style/LineEndConcatenation:
  Enabled: True

Layout/TrailingWhitespace:
  Enabled: True

Style/StringLiterals:
  Enabled: True

Style/TrailingCommaInArguments:
  Enabled: True

Style/TrailingCommaInLiteral:
  Enabled: True

Style/GlobalVars:
  Enabled: True

Style/GuardClause:
  Enabled: True

Style/IfUnlessModifier:
  Enabled: True

Style/MultilineIfThen:
  Enabled: True

Style/NegatedIf:
  Enabled: True

Style/NegatedWhile:
  Enabled: True

Style/Next:
  Enabled: True

Style/SingleLineBlockParams:
  Enabled: True

Style/SingleLineMethods:
  Enabled: True

Style/SpecialGlobalVars:
  Enabled: True

Style/TrivialAccessors:
  Enabled: True

Style/UnlessElse:
  Enabled: True

Style/VariableInterpolation:
  Enabled: True

Naming/VariableName:
  Enabled: True

Style/WhileUntilDo:
  Enabled: True

Style/EvenOdd:
  Enabled: True

Naming/FileName:
  Enabled: True

Style/For:
  Enabled: True

Style/Lambda:
  Enabled: True

Naming/MethodName:
  Enabled: True

Style/MultilineTernaryOperator:
  Enabled: True

Style/NestedTernaryOperator:
  Enabled: True

Style/NilComparison:
  Enabled: True

Style/FormatString:
  Enabled: True

Style/MultilineBlockChain:
  Enabled: True

Style/Semicolon:
  Enabled: True

Style/SignalException:
  Enabled: True

Style/NonNilCheck:
  Enabled: True

Style/Not:
  Enabled: True

Style/NumericLiterals:
  Enabled: True

Style/OneLineConditional:
  Enabled: True

Naming/BinaryOperatorParameterName:
  Enabled: True

Style/ParenthesesAroundCondition:
  Enabled: True

Style/PercentLiteralDelimiters:
  Enabled: True

Style/PerlBackrefs:
  Enabled: True

Naming/PredicateName:
  Enabled: True

Style/RedundantException:
  Enabled: True

Style/SelfAssignment:
  Enabled: True

Style/Proc:
  Enabled: True

Style/RaiseArgs:
  Enabled: True

Style/RedundantBegin:
  Enabled: True

Style/RescueModifier:
  Enabled: True

# based on https://github.com/voxpupuli/modulesync_config/issues/168
Style/RegexpLiteral:
  EnforcedStyle: percent_r
  Enabled: True

Lint/UnderscorePrefixedVariableName:
  Enabled: True

Metrics/ParameterLists:
  Enabled: False

Lint/RequireParentheses:
  Enabled: True

Style/ModuleFunction:
  Enabled: True

Lint/Debugger:
  Enabled: True

Style/IfWithSemicolon:
  Enabled: True

Style/Encoding:
  Enabled: True

Style/BlockDelimiters:
  Enabled: True

Layout/MultilineBlockLayout:
  Enabled: True

# 'Complexity' is very relative
Metrics/AbcSize:
  Enabled: False

# 'Complexity' is very relative
Metrics/PerceivedComplexity:
  Enabled: False

Lint/UselessAssignment:
  Enabled: True

Layout/ClosingParenthesisIndentation:
  Enabled: True
