diff --git a/.rubocop_styleguide.yml b/.rubocop_styleguide.yml index ddd88348db..6dc9379d08 100644 --- a/.rubocop_styleguide.yml +++ b/.rubocop_styleguide.yml @@ -5,18 +5,55 @@ AllCops: NewCops: enable SuggestExtensions: false Exclude: - - 'bin/**/*' - - 'db/**/*' - - 'config/**/*' - - 'script/**/*' - - 'vendor/**/*' - - 'node_modules/**/*' + - bin/**/* + - db/**/* + - config/**/* + - script/**/* + - vendor/**/* + - node_modules/**/* # Excluding: inadequate Naming/FileName rule rejects GemFile name with camelcase - - 'engines/web/Gemfile' + - engines/web/Gemfile + +Bundler/DuplicatedGem: + Enabled: false + +Layout/LineLength: + Enabled: true + Max: 100 + +Layout/MultilineMethodCallIndentation: + Enabled: true + EnforcedStyle: indented + +# Don't think this is a big issue, mostly picking up RPSEC scope definitions +# with lamdas and RSpec '.to change{}' blocks +Lint/AmbiguousBlockAssociation: + Enabled: false + +Lint/MissingSuper: + Exclude: + - app/components/**/* + +Lint/RaiseException: + Enabled: true + +Lint/StructNewOverride: + Enabled: true + +# Heaps of offences (> 100) in specs, mostly in situations where two or more +# instances of a model are required, but only one is referenced. Difficult to +# fix without making the spec look messy or rewriting it. +# Should definitely fix at some point. +Lint/UselessAssignment: + Exclude: + - spec/**/* Metrics: Enabled: true +Metrics/AbcSize: + Max: 30 # default 17 + Metrics/BlockLength: AllowedMethods: [ "class_eval", @@ -42,13 +79,31 @@ Metrics/BlockLength: "xdescribe", ] +Metrics/MethodLength: + Enabled: true + Max: 25 # default 10 + Metrics/ParameterLists: CountKeywordArgs: false +Metrics/PerceivedComplexity: + Enabled: true + Max: 14 # default 8 + +Naming/PredicateName: + Enabled: false + +Naming/VariableNumber: + AllowedIdentifiers: + - street_address_1 + - street_address_2 + AllowedPatterns: + - _v[\d]+ + Rails/ApplicationRecord: Exclude: # Migrations should not contain application code: - - "db/migrate/*.rb" + - db/migrate/*.rb # Allow many-to-many associations without explicit model. # - It avoids the additional code of a model class. @@ -57,25 +112,22 @@ Rails/ApplicationRecord: Rails/HasAndBelongsToMany: Enabled: false -Rails/SkipsModelValidations: - AllowedMethods: - - "touch" - - "touch_all" - - "update_all" - - "update_attribute" - - "update_column" - - "update_columns" - Rails/OutputSafety: Exclude: - - 'spec/**/*' + - spec/**/* + +Rails/SkipsModelValidations: + AllowedMethods: + - touch + - touch_all + - update_all + - update_attribute + - update_column + - update_columns Style/Documentation: Enabled: false -Style/StringLiterals: - Enabled: false - Style/HashSyntax: Enabled: true EnforcedStyle: ruby19_no_mixed_keys @@ -83,57 +135,5 @@ Style/HashSyntax: Style/Send: Enabled: true -Layout/MultilineMethodCallIndentation: - Enabled: true - EnforcedStyle: indented - -Layout/LineLength: - Enabled: true - Max: 100 - -Lint/RaiseException: - Enabled: true - -Lint/StructNewOverride: - Enabled: true - -Naming/VariableNumber: - AllowedIdentifiers: - - street_address_1 - - street_address_2 - AllowedPatterns: - - _v[\d]+ - -Bundler/DuplicatedGem: - Enabled: false - -# Don't think this is a big issue, mostly picking up RPSEC scope definitions -# with lamdas and RSpec '.to change{}' blocks -Lint/AmbiguousBlockAssociation: - Enabled: false - -# Heaps of offences (> 100) in specs, mostly in situations where two or more -# instances of a model are required, but only one is referenced. Difficult to -# fix without making the spec look messy or rewriting it. -# Should definitely fix at some point. -Lint/UselessAssignment: - Exclude: - - spec/**/* - -Lint/MissingSuper: - Exclude: - - 'app/components/**/*' - -Metrics/AbcSize: - Max: 30 # default 17 - -Metrics/MethodLength: - Enabled: true - Max: 25 # default 10 - -Metrics/PerceivedComplexity: - Enabled: true - Max: 14 # default 8 - -Naming/PredicateName: +Style/StringLiterals: Enabled: false