--- AllCops: TargetRubyVersion: 2.6 Include: - 'vendor/gems/**/*' Exclude: - 'db/**/*' - 'config/**/*' - 'script/**/*' - 'vendor/bundle/**/*' - 'app/assets/**/*' - 'node_modules/**/*' - 'tmp/**/*' - 'log/**/*' Rails: Enabled: true Rails/HttpPositionalArguments: Exclude: - 'spec/**/*_spec.rb' Rails/TimeZone: Enabled: false Rails/Date: Enabled: false Metrics/BlockLength: Exclude: - 'spec/**/*_spec.rb' - 'app/endpoints/**/*.rb' - '*.gemspec' # Commonly used screens these days easily fit more than 80 characters. Metrics/LineLength: Max: 120 # Too short methods lead to extraction of single-use methods, which can make # the code easier to read (by naming things), but can also clutter the class Metrics/MethodLength: Max: 20 Metrics/ParameterLists: Max: 8 # This is too subjective Style/SymbolArray: Enabled: false Style/ClassAndModuleChildren: Enabled: false Style/CollectionMethods: Enabled: true PreferredMethods: # inject seems more common in the community. reduce: 'inject' Style/FrozenStringLiteralComment: Enabled: false # Either allow this style or don't. Marking it as safe with parenthesis # is silly. Let's try to live without them for now. Style/ParenthesesAroundCondition: AllowSafeAssignment: false Lint/AssignmentInCondition: AllowSafeAssignment: false # Fail is an alias of raise. Avoid aliases, it's more cognitive load for no gain. # The argument that fail should be used to abort the program is wrong too, # there's Kernel#abort for that. Style/SignalException: EnforcedStyle: only_raise # Check with yard instead. Style/Documentation: Enabled: false # aligns the following lines with one level of indentation relative to # the start of the line with the method call. # # method_call(a, # b) # Style/BlockDelimiters: Enabled: false # free to use alias and alias_method Style/Alias: Enabled: false # Prefer numbers without delimeters Style/NumericLiterals: Enabled: false Style/LambdaCall: Enabled: false Style/NumericPredicate: EnforcedStyle: comparison Style/AndOr: Enabled: true Exclude: - 'app/controllers/**/*' Layout/AlignParameters: Enabled: false