Maintenance: Introduce dedicated .rubocop directory (without '.rubocop'-prefixed file names) to make excludes relative to the calling directort (custom development).
parent
b49802a161
commit
f83fe46c91
4 changed files with 296 additions and 291 deletions
@ -1,292 +1,5 @@ |
||||
# Default enabled cops |
||||
# https://github.com/rubocop-hq/rubocop/blob/master/config/default.yml |
||||
|
||||
require: |
||||
- rubocop-performance |
||||
- rubocop-rails |
||||
- rubocop-rspec |
||||
|
||||
# this is just a slim wrapper to: |
||||
# a) don't spam the root directory with rubocop files |
||||
# b) work around an issue with absolute excludes and custom development (https://github.com/rubocop-hq/rubocop/issues/4621) |
||||
inherit_from: |
||||
- .rubocop_todo.yml |
||||
- .rubocop_todo.rspec.yml |
||||
|
||||
AllCops: |
||||
NewCops: enable |
||||
DisplayCopNames: true |
||||
Exclude: |
||||
- 'bin/rails' |
||||
- 'bin/rake' |
||||
- 'bin/spring' |
||||
- 'db/schema.rb' |
||||
- 'vendor/**/*' |
||||
- 'node_modules/**/*' |
||||
- 'public/assets/**/*' |
||||
- 'public/packs/**/*' |
||||
RSpec: |
||||
Patterns: |
||||
- '_spec.rb$' |
||||
- '_examples.rb$' |
||||
|
||||
Rails: |
||||
Enabled: true |
||||
|
||||
# Zammad StyleGuide |
||||
|
||||
Style/FrozenStringLiteralComment: |
||||
Enabled: false |
||||
|
||||
Layout/LineLength: |
||||
Description: 'Limit lines to 80 characters.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits' |
||||
Enabled: false |
||||
|
||||
Style/NegatedIf: |
||||
Description: >- |
||||
Favor unless over if for negative conditions |
||||
(or control flow or). |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives' |
||||
Enabled: false |
||||
|
||||
Style/IfUnlessModifier: |
||||
Description: >- |
||||
Favor modifier if/unless usage when you have a |
||||
single-line body. |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier' |
||||
Enabled: false |
||||
|
||||
Style/TrailingCommaInArrayLiteral: |
||||
Description: 'Checks for trailing comma in array literals.' |
||||
StyleGuide: '#no-trailing-array-commas' |
||||
Enabled: false |
||||
|
||||
Style/TrailingCommaInHashLiteral: |
||||
Description: 'Checks for trailing comma in hash literals.' |
||||
Enabled: false |
||||
|
||||
Style/TrailingCommaInArguments: |
||||
Description: 'Checks for trailing comma in argument lists.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas' |
||||
Enabled: false |
||||
|
||||
Style/RescueStandardError: |
||||
Description: 'Avoid rescuing without specifying an error class.' |
||||
Enabled: true |
||||
EnforcedStyle: implicit |
||||
|
||||
Layout/SpaceInsideParens: |
||||
Description: 'No spaces after ( or before ).' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces' |
||||
Enabled: false |
||||
|
||||
Layout/SpaceAfterMethodName: |
||||
Description: >- |
||||
Do not put a space between a method name and the opening |
||||
parenthesis in a method definition. |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces' |
||||
Enabled: false |
||||
|
||||
Layout/LeadingCommentSpace: |
||||
Description: 'Comments should start with a space.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-space' |
||||
Enabled: false |
||||
|
||||
Style/MethodCallWithoutArgsParentheses: |
||||
Description: 'Do not use parentheses for method calls with no arguments.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-args-no-parens' |
||||
Enabled: false |
||||
|
||||
Layout/SpaceInsideReferenceBrackets: |
||||
Description: 'Checks the spacing inside referential brackets.' |
||||
Enabled: false |
||||
|
||||
Layout/SpaceInsideArrayLiteralBrackets: |
||||
Description: 'Checks the spacing inside array literal brackets.' |
||||
Enabled: false |
||||
|
||||
Style/DefWithParentheses: |
||||
Description: 'Use def with parentheses when there are arguments.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens' |
||||
Enabled: false |
||||
Style/MethodDefParentheses: |
||||
Description: >- |
||||
Checks if the method definitions have or don't have |
||||
parentheses. |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens' |
||||
Enabled: false |
||||
|
||||
Layout/HashAlignment: |
||||
Description: >- |
||||
Align the elements of a hash literal if they span more than |
||||
one line. |
||||
Enabled: true |
||||
EnforcedHashRocketStyle: table |
||||
EnforcedColonStyle: table |
||||
EnforcedLastArgumentHashStyle: always_inspect |
||||
|
||||
Layout/EmptyLinesAroundClassBody: |
||||
Description: "Keeps track of empty lines around class bodies." |
||||
Enabled: false |
||||
|
||||
Layout/EmptyLinesAroundMethodBody: |
||||
Description: "Keeps track of empty lines around method bodies." |
||||
Enabled: false |
||||
|
||||
Layout/EmptyLinesAroundBlockBody: |
||||
Description: "Keeps track of empty lines around block bodies." |
||||
Enabled: false |
||||
|
||||
Layout/EmptyLinesAroundModuleBody: |
||||
Description: "Keeps track of empty lines around module bodies." |
||||
Enabled: false |
||||
|
||||
Layout/ExtraSpacing: |
||||
Description: 'Do not use unnecessary spacing.' |
||||
Enabled: true |
||||
Exclude: |
||||
- 'config/routes/**/*' |
||||
- 'db/migrate/20120101000001_create_base.rb' |
||||
- 'db/migrate/20120101000010_create_ticket.rb' |
||||
|
||||
Style/MultilineBlockChain: |
||||
Description: 'Avoid multi-line chains of blocks.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks' |
||||
Enabled: false |
||||
|
||||
Metrics/ClassLength: |
||||
Description: 'Avoid classes longer than 100 lines of code.' |
||||
Enabled: false |
||||
|
||||
Metrics/MethodLength: |
||||
Description: 'Avoid methods longer than 10 lines of code.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods' |
||||
Enabled: false |
||||
|
||||
Style/BlockComments: |
||||
Description: 'Do not use block comments.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-block-comments' |
||||
Enabled: false |
||||
|
||||
Style/PerlBackrefs: |
||||
Description: 'Avoid Perl-style regex back references.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers' |
||||
Enabled: false |
||||
|
||||
Style/HashEachMethods: |
||||
Enabled: true |
||||
|
||||
Style/HashTransformKeys: |
||||
Enabled: true |
||||
|
||||
Style/HashTransformValues: |
||||
Enabled: true |
||||
|
||||
Style/SelfAssignment: |
||||
Description: >- |
||||
Checks for places where self-assignment shorthand should have |
||||
been used. |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment' |
||||
Enabled: false |
||||
|
||||
Rails/ApplicationRecord: |
||||
Exclude: |
||||
- 'app/models/application_model.rb' |
||||
- 'app/models/active_job_lock.rb' |
||||
|
||||
Rails/BulkChangeTable: |
||||
Description: 'Check whether alter queries are combinable.' |
||||
Enabled: false |
||||
|
||||
Rails/FindEach: |
||||
Description: 'Prefer all.find_each over all.find.' |
||||
Enabled: false |
||||
|
||||
Rails/HasAndBelongsToMany: |
||||
Description: 'Prefer has_many :through to has_and_belongs_to_many.' |
||||
# StyleGuide: 'https://github.com/bbatsov/rails-style-guide#has-many-through' |
||||
Enabled: false |
||||
|
||||
Rails/SkipsModelValidations: |
||||
Description: >- |
||||
Use methods that skips model validations with caution. |
||||
See reference for more information. |
||||
Reference: 'http://guides.rubyonrails.org/active_record_validations.html#skipping-validations' |
||||
Enabled: true |
||||
Exclude: |
||||
- test/**/* |
||||
- "**/*_spec.rb" |
||||
- "**/*_examples.rb" |
||||
|
||||
Style/ClassAndModuleChildren: |
||||
Description: 'Checks style of children classes and modules.' |
||||
Enabled: false |
||||
|
||||
Naming/FileName: |
||||
Description: 'Use snake_case for source file names.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files' |
||||
Enabled: true |
||||
Exclude: |
||||
- 'script/websocket-server.rb' |
||||
|
||||
Naming/VariableNumber: |
||||
Description: 'Use the configured style when numbering variables.' |
||||
Enabled: false |
||||
|
||||
Naming/MethodParameterName: |
||||
Description: >- |
||||
Checks for method parameter names that contain capital letters, |
||||
end in numbers, or do not meet a minimal length. |
||||
Enabled: true |
||||
AllowedNames: e, id, _, ip, to |
||||
|
||||
Lint/BooleanSymbol: |
||||
Description: 'Check for `:true` and `:false` symbols.' |
||||
Enabled: true |
||||
Exclude: |
||||
- "db/seeds/object_manager_attributes.rb" |
||||
- "spec/requests/integration/object_manager_attributes_spec.rb" |
||||
- "test/integration/object_manager_test.rb" |
||||
|
||||
Lint/InterpolationCheck: |
||||
Description: 'Raise warning for interpolation in single q strs' |
||||
Enabled: true |
||||
Exclude: |
||||
- "test/unit/email_process_auto_response_test.rb" |
||||
- "test/unit/email_process_bounce_delivery_permanent_failed_test.rb" |
||||
- "test/unit/email_process_bounce_follow_test.rb" |
||||
- "test/unit/notification_factory_renderer_test.rb" |
||||
- "test/unit/notification_factory_template_test.rb" |
||||
- "test/unit/ticket_trigger_test.rb" |
||||
- "test/unit/ticket_trigger_recursive_disabled_test.rb" |
||||
|
||||
# RSpec tests |
||||
Style/NumericPredicate: |
||||
Description: >- |
||||
Checks for the use of predicate- or comparison methods for |
||||
numeric comparisons. |
||||
StyleGuide: '#predicate-methods' |
||||
# This will change to a new method call which isn't guaranteed to be on the |
||||
# object. Switching these methods has to be done with knowledge of the types |
||||
# of the variables which rubocop doesn't have. |
||||
AutoCorrect: false |
||||
Enabled: true |
||||
Exclude: |
||||
- "**/*_spec.rb" |
||||
|
||||
Lint/AmbiguousBlockAssociation: |
||||
Description: >- |
||||
Checks for ambiguous block association with method when param |
||||
passed without parentheses. |
||||
StyleGuide: '#syntax' |
||||
Enabled: true |
||||
Exclude: |
||||
- "spec/support/*.rb" |
||||
- "**/*_spec.rb" |
||||
- "**/*_examples.rb" |
||||
|
||||
Layout/MultilineMethodCallIndentation: |
||||
Description: >- |
||||
Checks the indentation of the method name part in method calls |
||||
that span more than one line. |
||||
EnforcedStyle: indented |
||||
Include: |
||||
- "**/*_spec.rb" |
||||
- .rubocop/default.yml |
||||
|
@ -0,0 +1,292 @@ |
||||
# Default enabled cops |
||||
# https://github.com/rubocop-hq/rubocop/blob/master/config/default.yml |
||||
|
||||
require: |
||||
- rubocop-performance |
||||
- rubocop-rails |
||||
- rubocop-rspec |
||||
|
||||
inherit_from: |
||||
- todo.yml |
||||
- todo.rspec.yml |
||||
|
||||
AllCops: |
||||
NewCops: enable |
||||
DisplayCopNames: true |
||||
Exclude: |
||||
- 'bin/rails' |
||||
- 'bin/rake' |
||||
- 'bin/spring' |
||||
- 'db/schema.rb' |
||||
- 'vendor/**/*' |
||||
- 'node_modules/**/*' |
||||
- 'public/assets/**/*' |
||||
- 'public/packs/**/*' |
||||
RSpec: |
||||
Patterns: |
||||
- '_spec.rb$' |
||||
- '_examples.rb$' |
||||
|
||||
Rails: |
||||
Enabled: true |
||||
|
||||
# Zammad StyleGuide |
||||
|
||||
Style/FrozenStringLiteralComment: |
||||
Enabled: false |
||||
|
||||
Layout/LineLength: |
||||
Description: 'Limit lines to 80 characters.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits' |
||||
Enabled: false |
||||
|
||||
Style/NegatedIf: |
||||
Description: >- |
||||
Favor unless over if for negative conditions |
||||
(or control flow or). |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives' |
||||
Enabled: false |
||||
|
||||
Style/IfUnlessModifier: |
||||
Description: >- |
||||
Favor modifier if/unless usage when you have a |
||||
single-line body. |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier' |
||||
Enabled: false |
||||
|
||||
Style/TrailingCommaInArrayLiteral: |
||||
Description: 'Checks for trailing comma in array literals.' |
||||
StyleGuide: '#no-trailing-array-commas' |
||||
Enabled: false |
||||
|
||||
Style/TrailingCommaInHashLiteral: |
||||
Description: 'Checks for trailing comma in hash literals.' |
||||
Enabled: false |
||||
|
||||
Style/TrailingCommaInArguments: |
||||
Description: 'Checks for trailing comma in argument lists.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas' |
||||
Enabled: false |
||||
|
||||
Style/RescueStandardError: |
||||
Description: 'Avoid rescuing without specifying an error class.' |
||||
Enabled: true |
||||
EnforcedStyle: implicit |
||||
|
||||
Layout/SpaceInsideParens: |
||||
Description: 'No spaces after ( or before ).' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces' |
||||
Enabled: false |
||||
|
||||
Layout/SpaceAfterMethodName: |
||||
Description: >- |
||||
Do not put a space between a method name and the opening |
||||
parenthesis in a method definition. |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces' |
||||
Enabled: false |
||||
|
||||
Layout/LeadingCommentSpace: |
||||
Description: 'Comments should start with a space.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-space' |
||||
Enabled: false |
||||
|
||||
Style/MethodCallWithoutArgsParentheses: |
||||
Description: 'Do not use parentheses for method calls with no arguments.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-args-no-parens' |
||||
Enabled: false |
||||
|
||||
Layout/SpaceInsideReferenceBrackets: |
||||
Description: 'Checks the spacing inside referential brackets.' |
||||
Enabled: false |
||||
|
||||
Layout/SpaceInsideArrayLiteralBrackets: |
||||
Description: 'Checks the spacing inside array literal brackets.' |
||||
Enabled: false |
||||
|
||||
Style/DefWithParentheses: |
||||
Description: 'Use def with parentheses when there are arguments.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens' |
||||
Enabled: false |
||||
Style/MethodDefParentheses: |
||||
Description: >- |
||||
Checks if the method definitions have or don't have |
||||
parentheses. |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens' |
||||
Enabled: false |
||||
|
||||
Layout/HashAlignment: |
||||
Description: >- |
||||
Align the elements of a hash literal if they span more than |
||||
one line. |
||||
Enabled: true |
||||
EnforcedHashRocketStyle: table |
||||
EnforcedColonStyle: table |
||||
EnforcedLastArgumentHashStyle: always_inspect |
||||
|
||||
Layout/EmptyLinesAroundClassBody: |
||||
Description: "Keeps track of empty lines around class bodies." |
||||
Enabled: false |
||||
|
||||
Layout/EmptyLinesAroundMethodBody: |
||||
Description: "Keeps track of empty lines around method bodies." |
||||
Enabled: false |
||||
|
||||
Layout/EmptyLinesAroundBlockBody: |
||||
Description: "Keeps track of empty lines around block bodies." |
||||
Enabled: false |
||||
|
||||
Layout/EmptyLinesAroundModuleBody: |
||||
Description: "Keeps track of empty lines around module bodies." |
||||
Enabled: false |
||||
|
||||
Layout/ExtraSpacing: |
||||
Description: 'Do not use unnecessary spacing.' |
||||
Enabled: true |
||||
Exclude: |
||||
- 'config/routes/**/*' |
||||
- 'db/migrate/20120101000001_create_base.rb' |
||||
- 'db/migrate/20120101000010_create_ticket.rb' |
||||
|
||||
Style/MultilineBlockChain: |
||||
Description: 'Avoid multi-line chains of blocks.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks' |
||||
Enabled: false |
||||
|
||||
Metrics/ClassLength: |
||||
Description: 'Avoid classes longer than 100 lines of code.' |
||||
Enabled: false |
||||
|
||||
Metrics/MethodLength: |
||||
Description: 'Avoid methods longer than 10 lines of code.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods' |
||||
Enabled: false |
||||
|
||||
Style/BlockComments: |
||||
Description: 'Do not use block comments.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-block-comments' |
||||
Enabled: false |
||||
|
||||
Style/PerlBackrefs: |
||||
Description: 'Avoid Perl-style regex back references.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers' |
||||
Enabled: false |
||||
|
||||
Style/HashEachMethods: |
||||
Enabled: true |
||||
|
||||
Style/HashTransformKeys: |
||||
Enabled: true |
||||
|
||||
Style/HashTransformValues: |
||||
Enabled: true |
||||
|
||||
Style/SelfAssignment: |
||||
Description: >- |
||||
Checks for places where self-assignment shorthand should have |
||||
been used. |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment' |
||||
Enabled: false |
||||
|
||||
Rails/ApplicationRecord: |
||||
Exclude: |
||||
- 'app/models/application_model.rb' |
||||
- 'app/models/active_job_lock.rb' |
||||
|
||||
Rails/BulkChangeTable: |
||||
Description: 'Check whether alter queries are combinable.' |
||||
Enabled: false |
||||
|
||||
Rails/FindEach: |
||||
Description: 'Prefer all.find_each over all.find.' |
||||
Enabled: false |
||||
|
||||
Rails/HasAndBelongsToMany: |
||||
Description: 'Prefer has_many :through to has_and_belongs_to_many.' |
||||
# StyleGuide: 'https://github.com/bbatsov/rails-style-guide#has-many-through' |
||||
Enabled: false |
||||
|
||||
Rails/SkipsModelValidations: |
||||
Description: >- |
||||
Use methods that skips model validations with caution. |
||||
See reference for more information. |
||||
Reference: 'http://guides.rubyonrails.org/active_record_validations.html#skipping-validations' |
||||
Enabled: true |
||||
Exclude: |
||||
- test/**/* |
||||
- "**/*_spec.rb" |
||||
- "**/*_examples.rb" |
||||
|
||||
Style/ClassAndModuleChildren: |
||||
Description: 'Checks style of children classes and modules.' |
||||
Enabled: false |
||||
|
||||
Naming/FileName: |
||||
Description: 'Use snake_case for source file names.' |
||||
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files' |
||||
Enabled: true |
||||
Exclude: |
||||
- 'script/websocket-server.rb' |
||||
|
||||
Naming/VariableNumber: |
||||
Description: 'Use the configured style when numbering variables.' |
||||
Enabled: false |
||||
|
||||
Naming/MethodParameterName: |
||||
Description: >- |
||||
Checks for method parameter names that contain capital letters, |
||||
end in numbers, or do not meet a minimal length. |
||||
Enabled: true |
||||
AllowedNames: e, id, _, ip, to |
||||
|
||||
Lint/BooleanSymbol: |
||||
Description: 'Check for `:true` and `:false` symbols.' |
||||
Enabled: true |
||||
Exclude: |
||||
- "db/seeds/object_manager_attributes.rb" |
||||
- "spec/requests/integration/object_manager_attributes_spec.rb" |
||||
- "test/integration/object_manager_test.rb" |
||||
|
||||
Lint/InterpolationCheck: |
||||
Description: 'Raise warning for interpolation in single q strs' |
||||
Enabled: true |
||||
Exclude: |
||||
- "test/unit/email_process_auto_response_test.rb" |
||||
- "test/unit/email_process_bounce_delivery_permanent_failed_test.rb" |
||||
- "test/unit/email_process_bounce_follow_test.rb" |
||||
- "test/unit/notification_factory_renderer_test.rb" |
||||
- "test/unit/notification_factory_template_test.rb" |
||||
- "test/unit/ticket_trigger_test.rb" |
||||
- "test/unit/ticket_trigger_recursive_disabled_test.rb" |
||||
|
||||
# RSpec tests |
||||
Style/NumericPredicate: |
||||
Description: >- |
||||
Checks for the use of predicate- or comparison methods for |
||||
numeric comparisons. |
||||
StyleGuide: '#predicate-methods' |
||||
# This will change to a new method call which isn't guaranteed to be on the |
||||
# object. Switching these methods has to be done with knowledge of the types |
||||
# of the variables which rubocop doesn't have. |
||||
AutoCorrect: false |
||||
Enabled: true |
||||
Exclude: |
||||
- "**/*_spec.rb" |
||||
|
||||
Lint/AmbiguousBlockAssociation: |
||||
Description: >- |
||||
Checks for ambiguous block association with method when param |
||||
passed without parentheses. |
||||
StyleGuide: '#syntax' |
||||
Enabled: true |
||||
Exclude: |
||||
- "spec/support/*.rb" |
||||
- "**/*_spec.rb" |
||||
- "**/*_examples.rb" |
||||
|
||||
Layout/MultilineMethodCallIndentation: |
||||
Description: >- |
||||
Checks the indentation of the method name part in method calls |
||||
that span more than one line. |
||||
EnforcedStyle: indented |
||||
Include: |
||||
- "**/*_spec.rb" |
Loading…
Reference in new issue