AllCops: Exclude: - lib/lineinput.rb - lib/uuid.rb DisplayCopNames: true inherit_from: .rubocop_todo.yml #### Lint Lint/BlockAlignment: Enabled: true Lint/EndAlignment: Enabled: AlignWith Lint/EmptyWhen: Enabled: false Lint/NestedMethodDefinition: Exclude: - 'test/*' Lint/AssignmentInCondition: Enabled: false Lint/ParenthesesAsGroupedExpression: Enabled: false Lint/UnderscorePrefixedVariableName: Enabled: false Lint/UnusedBlockArgument: Enabled: false Lint/UnusedMethodArgument: Enabled: false Lint/UselessAssignment: Enabled: false #### Performance Performance/RegexpMatch: Enabled: false Performance/ReverseEach: Enabled: true # Use tr instead of gsub. Performance/StringReplacement: Enabled: false Performance/RangeInclude: Enabled: false #### Style Style/AccessorMethodName: Enabled: false Style/AsciiComments: Enabled: false # Use alias_method instead of alias. Style/Alias: EnforcedStyle: prefer_alias_method Enabled: true Style/AndOr: Enabled: false Style/BarePercentLiterals: EnforcedStyle: percent_q Enabled: true Style/BlockDelimiters: Enabled: false Style/BracesAroundHashParameters: Enabled: false Style/CaseEquality: Enabled: false Style/ClassCheck: Enabled: false Style/ClassMethods: Enabled: false # Do not introduce global variables. Style/GlobalVars: Enabled: true # Use self-assignment shorthand +=. Style/SelfAssignment: Enabled: true # When defining the == operator, name its argument other. Style/OpMethod: Enabled: true # Use snake_case for variable names. Style/VariableName: Enabled: true Style/ConditionalAssignment: Enabled: false Style/Documentation: Enabled: false Style/EmptyElse: Enabled: false Style/FormatString: EnforcedStyle: sprintf Enabled: true Style/GuardClause: Enabled: false Style/IfInsideElse: Enabled: false Style/IfUnlessModifier: Enabled: false Style/MutableConstant: Enabled: false Style/MultipleComparison: Enabled: false Style/UnneededInterpolation: Enabled: false Performance/RedundantMerge: Enabled: false Style/ZeroLengthPredicate: Enabled: false Style/NumericPredicate: EnforcedStyle: comparison Enabled: true Style/TernaryParentheses: Enabled: false Style/VariableNumber: EnforcedStyle: normalcase Enabled: true Style/FrozenStringLiteralComment: EnforcedStyle: never Enabled: true MultilineMethodCallBraceLayout: Enabled: false Style/SafeNavigation: Enabled: false Style/EmptyMethod: EnforcedStyle: expanded Enabled: true Style/HashSyntax: Enabled: false Style/RescueModifier: Enabled: false Style/ClassAndModuleChildren: EnforcedStyle: nested Enabled: true Style/ColonMethodCall: Enabled: true Style/For: Enabled: true Style/InfiniteLoop: Enabled: false Style/LineEndConcatenation: Enabled: false Style/MethodCallWithoutArgsParentheses: Enabled: false Style/MethodName: Enabled: false Style/MultilineBlockChain: Enabled: false Style/NegatedIf: Enabled: false Style/Next: Enabled: false Style/Not: Enabled: true Style/NumericLiterals: MinDigits: 6 Style/PercentLiteralDelimiters: Enabled: false Style/PercentQLiterals: EnforcedStyle: upper_case_q Enabled: true Style/PerlBackrefs: Enabled: false Style/RedundantBegin: Enabled: false Style/RedundantReturn: Enabled: false Style/RedundantSelf: Enabled: false Style/RegexpLiteral: Enabled: false Style/Semicolon: Enabled: true Style/SingleLineMethods: Enabled: true Style/SpecialGlobalVars: Enabled: false Style/StringLiterals: Enabled: false Style/StringLiteralsInInterpolation: Enabled: false Style/SymbolProc: Enabled: false Style/SymbolArray: Enabled: false Style/TrailingCommaInLiteral: Enabled: false Style/WordArray: MinSize: 10 Style/UnneededPercentQ: Enabled: false Style/WhileUntilModifier: Enabled: false Style/YodaCondition: Enabled: false #### Layout Layout/AccessModifierIndentation: EnforcedStyle: indent Enabled: true Layout/DotPosition: EnforcedStyle: trailing Enabled: true Layout/EmptyLines: Enabled: false Layout/EmptyLinesAroundAccessModifier: Enabled: true Layout/EmptyLinesAroundClassBody: Enabled: false Layout/EmptyLinesAroundMethodBody: Enabled: true Layout/EmptyLinesAroundModuleBody: Enabled: false Layout/EndOfLine: Enabled: false Layout/ExtraSpacing: Enabled: true Layout/IndentationConsistency: Enabled: true Layout/IndentationWidth: Enabled: true Layout/IndentHash: Enabled: true Layout/IndentHeredoc: Enabled: false Layout/LeadingCommentSpace: Enabled: false Layout/MultilineOperationIndentation: Enabled: false Layout/SpaceAroundBlockParameters: EnforcedStyleInsidePipes: no_space Enabled: true Layout/SpaceAfterComma: Enabled: false Layout/SpaceAfterNot: Enabled: true Layout/SpaceAfterSemicolon: Enabled: true Layout/SpaceAroundEqualsInParameterDefault: Enabled: false Layout/SpaceAroundOperators: Enabled: false Layout/SpaceBeforeBlockBraces: Enabled: false Layout/SpaceBeforeComma: Enabled: true Layout/SpaceInsideBlockBraces: Enabled: false Layout/SpaceInsideHashLiteralBraces: Enabled: false Layout/SpaceInsideStringInterpolation: EnforcedStyle: no_space Enabled: true Layout/TrailingBlankLines: Enabled: false #### Metrics Metrics/BlockNesting: Max: 4 Metrics/ModuleLength: Max: 129 Metrics/ParameterLists: Max: 8 Metrics/PerceivedComplexity: Max: 28 Metrics/ClassLength: Max: 1500 Metrics/LineLength: Max: 256 Exclude: - "test/**/*" ### should be < 50 Metrics/MethodLength: Max: 100 Exclude: - "bin/review-*" - "test/**/*" ### should be < 20 Metrics/CyclomaticComplexity: Max: 32 ### should be < 60 Metrics/AbcSize: Max: 120 Exclude: - "bin/review-*" - "test/**/*" ### shoud be < 25 Metrics/BlockLength: CountComments: false # count full line comments? Max: 50 Exclude: - 'Rakefile' - '**/*.rake' - 'test/**/*.rb' #### Security # we use Date object in config.yml so should use YAML.load :-/ Security/YAMLLoad: Exclude: - 'lib/review/catalog.rb' - 'test/test_helper.rb'