require: - rubocop-rspec # this odd relative path is so that rubocop works when run without "bundle # exec", such as from most editors/IDEs. - ./gems/rubocop-canvas/lib/rubocop_canvas AllCops: TargetRubyVersion: 2.3 # our style changes: disabling style rules we aren't interested in Style/StringLiterals: Enabled: false Style/SignalException: Enabled: false Style/SpaceBeforeBlockBraces: Enabled: false Style/SpaceInsideBlockBraces: Enabled: false Style/NumericLiterals: Enabled: false Style/BracesAroundHashParameters: Enabled: false Style/SpaceInsideBrackets: Enabled: false Style/SpaceInsideHashLiteralBraces: Enabled: false Style/PercentLiteralDelimiters: Enabled: false Style/SpaceAroundOperators: Enabled: false Style/SpaceAfterColon: Enabled: false Style/SpaceAfterComma: Enabled: false Style/Documentation: Enabled: false Style/ClassAndModuleChildren: Enabled: false Style/RegexpLiteral: Enabled: false Style/EmptyLines: Enabled: false Style/EmptyLinesAroundMethodBody: Enabled: false Style/EmptyLinesAroundClassBody: Enabled: false Style/EmptyLinesAroundModuleBody: Enabled: false Style/EmptyLinesAroundBlockBody: Enabled: false Style/GuardClause: Enabled: false Style/RedundantSelf: Enabled: false Style/SpaceAroundEqualsInParameterDefault: Enabled: false Style/SpaceBeforeFirstArg: Enabled: false Style/EmptyLinesAroundAccessModifier: Enabled: false Style/IfUnlessModifier: Enabled: false Style/WordArray: Enabled: false Style/PercentQLiterals: Enabled: false Style/IndentHash: Enabled: false Style/DoubleNegation: Enabled: false Style/TrailingCommaInArguments: Enabled: false Style/TrailingCommaInLiteral: Enabled: false Style/MethodCallWithoutArgsParentheses: Enabled: false Style/MethodCallWithArgsParentheses: Enabled: false Style/TrailingBlankLines: Enabled: false Style/IndentationConsistency: Enabled: false Style/IndentationWidth: Enabled: false Style/AlignParameters: Enabled: false Style/DotPosition: Enabled: false Style/TrailingWhitespace: Enabled: false Style/MultilineOperationIndentation: Enabled: false Style/AlignHash: Enabled: false Style/AlignParameters: Enabled: false Style/Lambda: Enabled: false Style/WhileUntilModifier: Enabled: false Style/ParallelAssignment: Enabled: false Style/ZeroLengthPredicate: Enabled: false Style/SpaceInLambdaLiteral: Enabled: false Style/NumericPredicate: Enabled: false Style/VariableNumber: Enabled: false Style/SpaceInLambdaLiteral: Enabled: false # We may want to enable this when we start working toward Ruby 3 Style/FrozenStringLiteralComment: Enabled: false # RSpec cops we don't care about RSpec/MessageSpies: Enabled: false RSpec/HookArgument: Enabled: false # RSpec cops we care extra about RSpec/EmptyExampleGroup: Severity: error RSpec/RepeatedDescription: Severity: error # this isn't good for us because of how we pin dependencies Bundler/OrderedGems: Enabled: false # Rails style changes Rails: Enabled: true Rails/TimeZone: Enabled: false # accessors are often defined in terms of read_attribute Rails/ReadWriteAttribute: Enabled: false # Lint changes Lint/AmbiguousRegexpLiteral: Severity: convention Lint/UselessAssignment: Severity: convention Lint/Debugger: Severity: error Lint/EndAlignment: Severity: convention # Performance changes Performance/Detect: Severity: warning # these need better configuration than the default: Style/AndOr: EnforcedStyle: conditionals Style/RescueModifier: Severity: warning Style/MultilineMethodCallIndentation: EnforcedStyle: indented Style/IndentArray: EnforcedStyle: consistent # these don't make sense pre-Rails 4 Rails/FindBy: Enabled: false Rails/ActionFilter: Enabled: false # these are invalid pre-Rails 5 Rails/HttpPositionalArguments: Enabled: false # these are invalid pre-Ruby 2.4 Performance/RegexpMatch: Enabled: false # Things we may want to tighten down later Metrics/AbcSize: Enabled: false Metrics/LineLength: Max: 120 Metrics/MethodLength: Max: 16 Metrics/BlockLength: Exclude: - 'gems/*/spec/**/*.rb' - 'gems/plugins/*/spec_canvas/**/*.rb' - 'spec/**/*.rb' Metrics/CyclomaticComplexity: Max: 10 RSpec/InstanceVariable: Enabled: false RSpec/ExampleWording: Enabled: false RSpec/ExampleLength: Max: 16 RSpec/NestedGroups: Max: 5 RSpec/DescribedClass: Enabled: false RSpec/DescribeClass: Enabled: false Style/HashSyntax: Enabled: false RSpec/MultipleExpectations: Enabled: false RSpec/ScatteredSetup: Enabled: false