require: - rubocop-performance - rubocop-rails - rubocop-rspec inherit_from: .rubocop_todo.yml Layout/LineLength: Max: 150 Metrics/ClassLength: Max: 125 Exclude: - 'app/models/conversation.rb' - 'app/models/contact.rb' - 'app/mailers/conversation_reply_mailer.rb' - 'app/models/message.rb' - 'app/builders/messages/facebook/message_builder.rb' - 'app/controllers/api/v1/accounts/contacts_controller.rb' - 'app/controllers/api/v1/accounts/conversations_controller.rb' - 'app/listeners/action_cable_listener.rb' - 'app/models/conversation.rb' RSpec/ExampleLength: Max: 25 Style/Documentation: Enabled: false Style/ExponentialNotation: Enabled: false Style/FrozenStringLiteralComment: Enabled: false Style/SymbolArray: Enabled: false Style/OpenStructUse: Enabled: false Style/OptionalBooleanParameter: Exclude: - 'app/services/email_templates/db_resolver_service.rb' - 'app/dispatchers/dispatcher.rb' Style/GlobalVars: Exclude: - 'config/initializers/01_redis.rb' - 'config/initializers/rack_attack.rb' - 'lib/redis/alfred.rb' - 'lib/global_config.rb' Style/ClassVars: Exclude: - 'app/services/email_templates/db_resolver_service.rb' Lint/MissingSuper: Exclude: - 'app/drops/base_drop.rb' Lint/SymbolConversion: Enabled: false Lint/EmptyBlock: Exclude: - 'app/views/api/v1/accounts/conversations/toggle_status.json.jbuilder' Lint/OrAssignmentToConstant: Exclude: - 'lib/redis/config.rb' Metrics/BlockLength: Exclude: - spec/**/* - '**/routes.rb' - 'config/environments/*' - db/schema.rb Metrics/ModuleLength: Exclude: - lib/seeders/message_seeder.rb Rails/ApplicationController: Exclude: - 'app/controllers/api/v1/widget/messages_controller.rb' - 'app/controllers/dashboard_controller.rb' - 'app/controllers/widget_tests_controller.rb' - 'app/controllers/widgets_controller.rb' - 'app/controllers/platform_controller.rb' - 'app/controllers/public_controller.rb' - 'app/controllers/survey/responses_controller.rb' Rails/CompactBlank: Enabled: false Rails/EnvironmentVariableAccess: Enabled: false Rails/TimeZoneAssignment: Enabled: false Rails/RedundantPresenceValidationOnBelongsTo: Enabled: false Style/ClassAndModuleChildren: EnforcedStyle: compact Exclude: - 'config/application.rb' Style/MapToHash: Enabled: false RSpec/NestedGroups: Enabled: true Max: 4 RSpec/MessageSpies: Enabled: false RSpec/StubbedMock: Enabled: false RSpec/FactoryBot/SyntaxMethods: Enabled: false Naming/VariableNumber: Enabled: false Metrics/MethodLength: Exclude: - 'db/migrate/20161123131628_devise_token_auth_create_users.rb' - 'db/migrate/20211219031453_update_foreign_keys_on_delete.rb' Rails/CreateTableWithTimestamps: Exclude: - 'db/migrate/20170207092002_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb' Style/GuardClause: Exclude: - 'app/builders/account_builder.rb' - 'app/models/attachment.rb' - 'app/models/message.rb' - 'db/migrate/20190819005836_add_missing_indexes_on_taggings.acts_as_taggable_on_engine.rb' Metrics/AbcSize: Exclude: - 'app/controllers/concerns/auth_helper.rb' - 'db/migrate/20190819005836_add_missing_indexes_on_taggings.acts_as_taggable_on_engine.rb' - 'db/migrate/20161123131628_devise_token_auth_create_users.rb' - 'app/controllers/api/v1/accounts/inboxes_controller.rb' - 'db/migrate/20211219031453_update_foreign_keys_on_delete.rb' Metrics/CyclomaticComplexity: Max: 7 Exclude: - 'db/migrate/20190819005836_add_missing_indexes_on_taggings.acts_as_taggable_on_engine.rb' Rails/ReversibleMigration: Exclude: - 'db/migrate/20161025070152_removechannelsfrommodels.rb' - 'db/migrate/20161025070645_remchannel.rb' - 'db/migrate/20161025070645_remchannel.rb' - 'db/migrate/20161110102609_removeinboxid.rb' - 'db/migrate/20170519091539_add_avatar_to_fb.rb' - 'db/migrate/20191020085608_rename_old_tables.rb' - 'db/migrate/20191126185833_update_user_invite_foreign_key.rb' - 'db/migrate/20191130164019_add_template_type_to_messages.rb' - 'db/migrate/20210513083044_remove_not_null_from_webhook_url_channel_api.rb' Rails/BulkChangeTable: Exclude: - 'db/migrate/20161025070152_removechannelsfrommodels.rb' - 'db/migrate/20200121190901_create_account_users.rb' - 'db/migrate/20170211092540_notnullableusers.rb' - 'db/migrate/20170403095203_contactadder.rb' - 'db/migrate/20170406104018_add_default_status_conv.rb' - 'db/migrate/20170511134418_latlong.rb' - 'db/migrate/20191027054756_create_contact_inboxes.rb' - 'db/migrate/20191130164019_add_template_type_to_messages.rb' - 'db/migrate/20210425093724_convert_integration_hook_settings_field.rb' Rails/UniqueValidationWithoutIndex: Exclude: - 'app/models/channel/twitter_profile.rb' - 'app/models/webhook.rb' - 'app/models/contact.rb' - 'app/models/integrations/hook.rb' Rails/RenderInline: Exclude: - 'app/controllers/swagger_controller.rb' Performance/CollectionLiteralInLoop: Exclude: - 'db/migrate/20210315101919_enable_email_channel.rb' RSpec/NamedSubject: Enabled: false # we should bring this down RSpec/MultipleMemoizedHelpers: Max: 12 AllCops: NewCops: enable Exclude: - 'bin/**/*' - 'db/schema.rb' - 'public/**/*' - 'config/initializers/bot.rb' - 'vendor/**/*' - 'node_modules/**/*' - 'lib/tasks/auto_annotate_models.rake' - 'config/environments/**/*' - 'tmp/**/*' - 'storage/**/*' - 'db/migrate/20200225162150_init_schema.rb' - 'db/migrate/20210611180222_create_active_storage_variant_records.active_storage.rb' - 'db/migrate/20210611180221_add_service_name_to_active_storage_blobs.active_storage.rb' - db/migrate/20200309213132_add_account_id_to_agent_bot_inboxes.rb - db/migrate/20200331095710_add_identifier_to_contact.rb - db/migrate/20200429082655_add_medium_to_twilio_sms.rb - db/migrate/20200503151130_add_account_feature_flag.rb - db/migrate/20200927135222_add_last_activity_at_to_conversation.rb - db/migrate/20210306170117_add_last_activity_at_to_contacts.rb - db/migrate/20220809104508_revert_cascading_indexes.rb