require: - rubocop-performance - rubocop-rake - rubocop-rspec AllCops: TargetRubyVersion: 3.2 DisplayCopNames: true NewCops: enable Layout/LineLength: Max: 120 Layout/DotPosition: EnforcedStyle: leading Layout/SpaceInsideArrayLiteralBrackets: EnforcedStyle: no_space Layout/MultilineArrayBraceLayout: EnforcedStyle: new_line Layout/MultilineHashBraceLayout: EnforcedStyle: new_line Layout/MultilineMethodCallBraceLayout: EnforcedStyle: new_line Layout/FirstArgumentIndentation: EnforcedStyle: consistent Lint/AmbiguousBlockAssociation: Enabled: true AllowedMethods: [ change, not_change ] Metrics/BlockLength: Max: 80 Exclude: - "spec/**/*.rb" Metrics/MethodLength: Max: 40 Exclude: - "spec/**/*.rb" Metrics/ParameterLists: Max: 3 CountKeywordArgs: false Metrics/AbcSize: Enabled: false Metrics/BlockNesting: Max: 5 Exclude: - "spec/**/*.rb" Metrics/ClassLength: Enabled: false Metrics/CyclomaticComplexity: Enabled: false Metrics/ModuleLength: Enabled: false Metrics/PerceivedComplexity: Enabled: false Style/Documentation: Enabled: false Style/SymbolArray: EnforcedStyle: brackets Style/WordArray: EnforcedStyle: brackets # All lambda will be like `->() {}`, `->() do end`. Style/Lambda: EnforcedStyle: literal Style/ConditionalAssignment: Enabled: false Style/EmptyMethod: EnforcedStyle: expanded Style/SingleLineMethods: AllowIfMethodIsEmpty: false Style/FormatStringToken: Enabled: false Style/BlockDelimiters: Enabled: true BracesRequiredMethods: [ 'expect', 'change' ] Style/GuardClause: Enabled: false # internal concerns must be written in compact style. # classes in a namespace should be written in expanded style. Style/ClassAndModuleChildren: Enabled: false Style/StringLiterals: Enabled: true EnforcedStyle: single_quotes Style/StringLiteralsInInterpolation: Enabled: true EnforcedStyle: single_quotes