# Default enabled cops # https://github.com/rubocop-hq/rubocop/blob/master/config/default.yml require: rubocop-performance inherit_from: .rubocop_todo.yml AllCops: DisplayCopNames: true Exclude: - 'bin/rails' - 'bin/rake' - 'bin/spring' - 'db/schema.rb' - 'vendor/**/*' Rails: Enabled: true # Zammad StyleGuide Style/FrozenStringLiteralComment: Enabled: false Metrics/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 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/AlignHash: 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 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/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 Style/BracesAroundHashParameters: Description: 'Enforce braces style around hash parameters.' Enabled: false 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/UncommunicativeMethodParamName: 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 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" # Special exceptions Style/HashSyntax: Exclude: - "**/*.rake"