diff --git a/app/components/individual_principal_base_filter_component.rb b/app/components/individual_principal_base_filter_component.rb index 7e1291b6cfe..362c30f683e 100644 --- a/app/components/individual_principal_base_filter_component.rb +++ b/app/components/individual_principal_base_filter_component.rb @@ -75,7 +75,7 @@ class IndividualPrincipalBaseFilterComponent < ApplicationComponent end def base_query - raise NotImplementedError + raise SubclassResponsibilityError end protected @@ -93,7 +93,7 @@ class IndividualPrincipalBaseFilterComponent < ApplicationComponent # INSTANCE METHODS: def filter_path - raise NotImplementedError + raise SubclassResponsibilityError end def initially_visible? diff --git a/app/components/op_primer/email_updates_mode_selector_component.rb b/app/components/op_primer/email_updates_mode_selector_component.rb index ba9ef59f64a..b4ce6d4f656 100644 --- a/app/components/op_primer/email_updates_mode_selector_component.rb +++ b/app/components/op_primer/email_updates_mode_selector_component.rb @@ -38,7 +38,7 @@ module OpPrimer super() if !show_button && alt_text.blank? - raise NotImplementedError, "alt_text must be provided when the button is shown conditionally" + raise ArgumentError, "alt_text must be provided when the button is shown conditionally" end diff --git a/app/components/op_primer/status_button_component.rb b/app/components/op_primer/status_button_component.rb index 74260921ff1..f98b7fc5f40 100644 --- a/app/components/op_primer/status_button_component.rb +++ b/app/components/op_primer/status_button_component.rb @@ -50,7 +50,7 @@ module OpPrimer end def default_button_title - raise NotImplementedError + raise SubclassResponsibilityError end def disabled? diff --git a/app/components/work_packages/exports/base_export_settings_component.rb b/app/components/work_packages/exports/base_export_settings_component.rb index 8f9be5894b4..88d6d572815 100644 --- a/app/components/work_packages/exports/base_export_settings_component.rb +++ b/app/components/work_packages/exports/base_export_settings_component.rb @@ -40,7 +40,7 @@ module WorkPackages end def format - raise NotImplementedError, "Must be overridden in subclass" + raise SubclassResponsibilityError end def export_settings diff --git a/app/contracts/projects/base_contract.rb b/app/contracts/projects/base_contract.rb index cbd84a3b725..ab0828a070c 100644 --- a/app/contracts/projects/base_contract.rb +++ b/app/contracts/projects/base_contract.rb @@ -122,7 +122,7 @@ module Projects end def manage_permission - raise NotImplementedError + raise SubclassResponsibilityError end def with_unchanged_id diff --git a/app/contracts/shares/base_contract.rb b/app/contracts/shares/base_contract.rb index 2862511e740..cb76bd2546d 100644 --- a/app/contracts/shares/base_contract.rb +++ b/app/contracts/shares/base_contract.rb @@ -48,7 +48,7 @@ module Shares end def user_allowed_to_manage? - raise NotImplementedError, "Must be overridden by subclass" + raise SubclassResponsibilityError end def single_non_inherited_role @@ -76,7 +76,7 @@ module Shares end def assignable_role_class - raise NotImplementedError, "Must be overridden by subclass" + raise SubclassResponsibilityError end end end diff --git a/app/controllers/admin/custom_fields/hierarchy/items_base_controller.rb b/app/controllers/admin/custom_fields/hierarchy/items_base_controller.rb index 87323c15a7b..d10bae6ee24 100644 --- a/app/controllers/admin/custom_fields/hierarchy/items_base_controller.rb +++ b/app/controllers/admin/custom_fields/hierarchy/items_base_controller.rb @@ -227,7 +227,7 @@ module Admin end def find_custom_field - raise NotImplementedError, "SubclassResponsibility" + raise SubclassResponsibilityError end def find_active_item diff --git a/app/controllers/admin/settings/enumerations_controller_base.rb b/app/controllers/admin/settings/enumerations_controller_base.rb index f1d9ff93623..c3346c8baf1 100644 --- a/app/controllers/admin/settings/enumerations_controller_base.rb +++ b/app/controllers/admin/settings/enumerations_controller_base.rb @@ -136,7 +136,7 @@ module Admin end def enumeration_class - raise NotImplementedError + raise SubclassResponsibilityError end def enumeration_permitted_params diff --git a/app/controllers/concerns/custom_fields/attribute_help_text_actions.rb b/app/controllers/concerns/custom_fields/attribute_help_text_actions.rb index 125eee405be..f5d036f8661 100644 --- a/app/controllers/concerns/custom_fields/attribute_help_text_actions.rb +++ b/app/controllers/concerns/custom_fields/attribute_help_text_actions.rb @@ -51,11 +51,11 @@ module CustomFields end def show_path - raise NotImplementedError, "#{self.class} must implement #show_path" + raise SubclassResponsibilityError, "#{self.class} must implement #show_path" end def render_attribute_help_text_form(status: :ok) - raise NotImplementedError, "#{self.class} must implement #render_attribute_help_text_form" + raise SubclassResponsibilityError, "#{self.class} must implement #render_attribute_help_text_form" end def find_or_initialize_attribute_help_text diff --git a/app/forms/custom_fields/custom_field_rendering.rb b/app/forms/custom_fields/custom_field_rendering.rb index 8e5063e2991..ba2ef874492 100644 --- a/app/forms/custom_fields/custom_field_rendering.rb +++ b/app/forms/custom_fields/custom_field_rendering.rb @@ -69,7 +69,7 @@ module CustomFields::CustomFieldRendering end def custom_fields - raise NotImplementedError, "#custom_fields method needs to be overwritten and provide all custom fields we want to show" + raise SubclassResponsibilityError, "#custom_fields needs to be overwritten and provide all custom fields we want to show" end private diff --git a/app/forms/custom_fields/inputs/base/autocomplete/multi_value_input.rb b/app/forms/custom_fields/inputs/base/autocomplete/multi_value_input.rb index 5317f2db92f..a635482ff44 100644 --- a/app/forms/custom_fields/inputs/base/autocomplete/multi_value_input.rb +++ b/app/forms/custom_fields/inputs/base/autocomplete/multi_value_input.rb @@ -49,7 +49,7 @@ class CustomFields::Inputs::Base::Autocomplete::MultiValueInput < CustomFields:: end def decorated? - raise NotImplementedError + raise SubclassResponsibilityError end def custom_values diff --git a/app/forms/custom_fields/inputs/base/autocomplete/single_value_input.rb b/app/forms/custom_fields/inputs/base/autocomplete/single_value_input.rb index ff38c99ea61..5a0466e2def 100644 --- a/app/forms/custom_fields/inputs/base/autocomplete/single_value_input.rb +++ b/app/forms/custom_fields/inputs/base/autocomplete/single_value_input.rb @@ -49,6 +49,6 @@ class CustomFields::Inputs::Base::Autocomplete::SingleValueInput < CustomFields: end def decorated? - raise NotImplementedError + raise SubclassResponsibilityError end end diff --git a/app/menus/submenu.rb b/app/menus/submenu.rb index a6058e0ee21..92094f83971 100644 --- a/app/menus/submenu.rb +++ b/app/menus/submenu.rb @@ -72,7 +72,7 @@ class Submenu end def default_queries - raise NotImplementedError + raise SubclassResponsibilityError end def global_queries @@ -150,7 +150,7 @@ class Submenu end def query_path(query_params) - raise NotImplementedError + raise SubclassResponsibilityError end def url_helpers diff --git a/app/models/activities/event_mapper.rb b/app/models/activities/event_mapper.rb index e563726ce75..368ccb78a25 100644 --- a/app/models/activities/event_mapper.rb +++ b/app/models/activities/event_mapper.rb @@ -77,11 +77,11 @@ module Activities end def event_data(journal) - raise NotImplementedError + raise SubclassResponsibilityError end def event_title(journal, data) - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/app/models/attribute_help_text.rb b/app/models/attribute_help_text.rb index a9351c28c14..5a4e7313457 100644 --- a/app/models/attribute_help_text.rb +++ b/app/models/attribute_help_text.rb @@ -80,15 +80,15 @@ class AttributeHelpText < ApplicationRecord end def type_caption - raise NotImplementedError + raise SubclassResponsibilityError end def self.visible_condition(_user = nil) - raise NotImplementedError + raise SubclassResponsibilityError end def self.available_attributes - raise NotImplementedError + raise SubclassResponsibilityError end end diff --git a/app/models/auth_provider.rb b/app/models/auth_provider.rb index 0ef960a072e..5f69a4f24e3 100644 --- a/app/models/auth_provider.rb +++ b/app/models/auth_provider.rb @@ -49,7 +49,7 @@ class AuthProvider < ApplicationRecord end def human_type - raise NotImplementedError + raise SubclassResponsibilityError end def auth_url diff --git a/app/models/custom_actions/actions/base.rb b/app/models/custom_actions/actions/base.rb index c499282473d..3c5a2f377a8 100644 --- a/app/models/custom_actions/actions/base.rb +++ b/app/models/custom_actions/actions/base.rb @@ -42,7 +42,7 @@ class CustomActions::Actions::Base end def allowed_values - raise NotImplementedError + raise SubclassResponsibilityError end def value_objects @@ -52,11 +52,11 @@ class CustomActions::Actions::Base end def type - raise NotImplementedError + raise SubclassResponsibilityError end def apply(_work_package) - raise NotImplementedError + raise SubclassResponsibilityError end def human_name @@ -64,7 +64,7 @@ class CustomActions::Actions::Base end def self.key - raise NotImplementedError + raise SubclassResponsibilityError end def self.all diff --git a/app/models/custom_actions/actions/custom_field.rb b/app/models/custom_actions/actions/custom_field.rb index 55393c9dcea..dd796273c4f 100644 --- a/app/models/custom_actions/actions/custom_field.rb +++ b/app/models/custom_actions/actions/custom_field.rb @@ -35,7 +35,7 @@ class CustomActions::Actions::CustomField < CustomActions::Actions::Base end def custom_field - raise NotImplementedError + raise SubclassResponsibilityError end def all diff --git a/app/models/custom_actions/conditions/base.rb b/app/models/custom_actions/conditions/base.rb index add9a84c872..9852d382fbc 100644 --- a/app/models/custom_actions/conditions/base.rb +++ b/app/models/custom_actions/conditions/base.rb @@ -67,7 +67,7 @@ class CustomActions::Conditions::Base end def self.key - raise NotImplementedError + raise SubclassResponsibilityError end def validate(errors) diff --git a/app/models/custom_value/ar_object_strategy.rb b/app/models/custom_value/ar_object_strategy.rb index f8cbb6f4280..4c9752ff8ed 100644 --- a/app/models/custom_value/ar_object_strategy.rb +++ b/app/models/custom_value/ar_object_strategy.rb @@ -69,7 +69,7 @@ class CustomValue::ARObjectStrategy < CustomValue::FormatStrategy end def ar_class - raise NotImplementedError + raise SubclassResponsibilityError end def ar_object(value) diff --git a/app/models/custom_value/format_strategy.rb b/app/models/custom_value/format_strategy.rb index 85e484bb2a5..5f576e87bdf 100644 --- a/app/models/custom_value/format_strategy.rb +++ b/app/models/custom_value/format_strategy.rb @@ -42,7 +42,7 @@ class CustomValue::FormatStrategy # Returns the value of the CustomValue in a typed fashion (i.e. not as the string # that is used for representation in the database) def typed_value - raise "SubclassResponsibility" + raise SubclassResponsibilityError end # Returns the value of the CustomValue formatted to a string @@ -59,6 +59,6 @@ class CustomValue::FormatStrategy # Validates the type of the custom field and returns a symbol indicating the validation error # if an error occurred; returns nil if no error occurred def validate_type_of_value - raise "SubclassResponsibility" + raise SubclassResponsibilityError end end diff --git a/app/models/exports/exporter.rb b/app/models/exports/exporter.rb index 17ab532b76d..0c42581fef4 100644 --- a/app/models/exports/exporter.rb +++ b/app/models/exports/exporter.rb @@ -63,7 +63,7 @@ module Exports # Run the export, yielding the result of the render output def export! - raise NotImplementedError + raise SubclassResponsibilityError end protected diff --git a/app/models/principal.rb b/app/models/principal.rb index adbe8fa58c3..1ec1c24a00e 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -137,7 +137,7 @@ class Principal < ApplicationRecord # Columns required for formatting the principal's name. def self.columns_for_name(formatter = nil) - raise NotImplementedError, "Redefine in subclass" unless self == Principal + raise SubclassResponsibilityError, "Redefine in subclass" unless self == Principal [User, Group, PlaceholderUser].map { it.columns_for_name(formatter) }.inject(:|) end diff --git a/app/models/queries/filters/base.rb b/app/models/queries/filters/base.rb index bf739596141..1b049ce549a 100644 --- a/app/models/queries/filters/base.rb +++ b/app/models/queries/filters/base.rb @@ -79,11 +79,11 @@ class Queries::Filters::Base end def human_name - raise NotImplementedError + raise SubclassResponsibilityError end def type - raise NotImplementedError + raise SubclassResponsibilityError end def allowed_values diff --git a/app/models/queries/filters/shared/parsed_filter.rb b/app/models/queries/filters/shared/parsed_filter.rb index 7d16415cb06..928cc314970 100644 --- a/app/models/queries/filters/shared/parsed_filter.rb +++ b/app/models/queries/filters/shared/parsed_filter.rb @@ -50,11 +50,11 @@ module Queries::Filters::Shared::ParsedFilter private def split_values - raise NotImplementedError + raise SubclassResponsibilityError end def value_conditions - raise NotImplementedError + raise SubclassResponsibilityError end def validate_values diff --git a/app/models/queries/filters/strategies/numeric.rb b/app/models/queries/filters/strategies/numeric.rb index f2b1d938418..66531229922 100644 --- a/app/models/queries/filters/strategies/numeric.rb +++ b/app/models/queries/filters/strategies/numeric.rb @@ -42,11 +42,11 @@ module Queries::Filters::Strategies private def numeric_class - raise NotImplementedError + raise SubclassResponsibilityError end def error_message - raise NotImplementedError + raise SubclassResponsibilityError end def validate_values_all_numeric diff --git a/app/models/queries/group_bys/base.rb b/app/models/queries/group_bys/base.rb index ec2b2772db4..b1adc00d224 100644 --- a/app/models/queries/group_bys/base.rb +++ b/app/models/queries/group_bys/base.rb @@ -45,7 +45,7 @@ module Queries end def self.key - raise NotImplementedError + raise SubclassResponsibilityError end def association_class diff --git a/app/models/queries/operators/base.rb b/app/models/queries/operators/base.rb index 0aa864e84de..c70601a6de1 100644 --- a/app/models/queries/operators/base.rb +++ b/app/models/queries/operators/base.rb @@ -53,7 +53,7 @@ module Queries::Operators end def self.sql_for_field(_values, _db_table, _db_field) - raise NotImplementedError + raise SubclassResponsibilityError end def self.connection diff --git a/app/models/queries/orders/base.rb b/app/models/queries/orders/base.rb index 4d8f4630e6b..ab72786bae3 100644 --- a/app/models/queries/orders/base.rb +++ b/app/models/queries/orders/base.rb @@ -50,7 +50,7 @@ module Queries end def self.key - raise NotImplementedError + raise SubclassResponsibilityError end def apply_to(query_scope) diff --git a/app/models/queries/projects/filters/dynamically_from_project_phase.rb b/app/models/queries/projects/filters/dynamically_from_project_phase.rb index 1b27413f406..7d92fa3df50 100644 --- a/app/models/queries/projects/filters/dynamically_from_project_phase.rb +++ b/app/models/queries/projects/filters/dynamically_from_project_phase.rb @@ -56,7 +56,7 @@ module Queries::Projects::Filters::DynamicallyFromProjectPhase end def key - raise NotImplementedError + raise SubclassResponsibilityError end private @@ -77,7 +77,7 @@ module Queries::Projects::Filters::DynamicallyFromProjectPhase end def create_from_phase(_phase, _context) - raise NotImplementedError + raise SubclassResponsibilityError end def accessor_matches?(definition, match) diff --git a/app/models/queries/projects/filters/filter_on_project_phase.rb b/app/models/queries/projects/filters/filter_on_project_phase.rb index 0b6a5bf4613..ee137dd9492 100644 --- a/app/models/queries/projects/filters/filter_on_project_phase.rb +++ b/app/models/queries/projects/filters/filter_on_project_phase.rb @@ -74,23 +74,23 @@ module Queries::Projects::Filters::FilterOnProjectPhase private def on_date - raise NotImplementedError + raise SubclassResponsibilityError end def on_today - raise NotImplementedError + raise SubclassResponsibilityError end def between_date - raise NotImplementedError + raise SubclassResponsibilityError end def this_week - raise NotImplementedError + raise SubclassResponsibilityError end def none - raise NotImplementedError + raise SubclassResponsibilityError end def project_phase_scope_limit(scope) diff --git a/app/models/queries/relations/filters/visibility_checking.rb b/app/models/queries/relations/filters/visibility_checking.rb index 4a5d102175e..6f4999cb581 100644 --- a/app/models/queries/relations/filters/visibility_checking.rb +++ b/app/models/queries/relations/filters/visibility_checking.rb @@ -54,7 +54,7 @@ module Queries private def visibility_checked_sql(_operator, _values, _visible_sql) - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/app/models/queries/selects/base.rb b/app/models/queries/selects/base.rb index a1d25a8e160..ec4175a41e9 100644 --- a/app/models/queries/selects/base.rb +++ b/app/models/queries/selects/base.rb @@ -32,7 +32,7 @@ class Queries::Selects::Base include ActiveModel::Validations def self.key - raise NotImplementedError + raise SubclassResponsibilityError end def self.available? diff --git a/app/models/queries/work_packages/filter/attachment_base_filter.rb b/app/models/queries/work_packages/filter/attachment_base_filter.rb index a8d97e4b7a4..c4fdb72c69a 100644 --- a/app/models/queries/work_packages/filter/attachment_base_filter.rb +++ b/app/models/queries/work_packages/filter/attachment_base_filter.rb @@ -68,7 +68,7 @@ class Queries::WorkPackages::Filter::AttachmentBaseFilter < Queries::WorkPackage end def search_column - raise NotImplementedError + raise SubclassResponsibilityError end def normalization_type diff --git a/app/models/queries/work_packages/filter/filter_on_directed_relations_mixin.rb b/app/models/queries/work_packages/filter/filter_on_directed_relations_mixin.rb index 5594e280e57..0fefe8cf7cc 100644 --- a/app/models/queries/work_packages/filter/filter_on_directed_relations_mixin.rb +++ b/app/models/queries/work_packages/filter/filter_on_directed_relations_mixin.rb @@ -47,7 +47,7 @@ module Queries::WorkPackages::Filter::FilterOnDirectedRelationsMixin end def relation_type - raise NotImplementedError + raise SubclassResponsibilityError end def normalized_relation_type @@ -57,10 +57,10 @@ module Queries::WorkPackages::Filter::FilterOnDirectedRelationsMixin private def relation_filter - raise NotImplementedError + raise SubclassResponsibilityError end def relation_select - raise NotImplementedError + raise SubclassResponsibilityError end end diff --git a/app/models/queries/work_packages/filter/filter_on_undirected_relations_mixin.rb b/app/models/queries/work_packages/filter/filter_on_undirected_relations_mixin.rb index d8956e65ce6..131c6d37179 100644 --- a/app/models/queries/work_packages/filter/filter_on_undirected_relations_mixin.rb +++ b/app/models/queries/work_packages/filter/filter_on_undirected_relations_mixin.rb @@ -42,7 +42,7 @@ module Queries::WorkPackages::Filter::FilterOnUndirectedRelationsMixin end def relation_type - raise NotImplementedError + raise SubclassResponsibilityError end private diff --git a/app/models/queries/work_packages/filter/or_filter_for_wp_mixin.rb b/app/models/queries/work_packages/filter/or_filter_for_wp_mixin.rb index 3ce0a5cd23d..8bab4565716 100644 --- a/app/models/queries/work_packages/filter/or_filter_for_wp_mixin.rb +++ b/app/models/queries/work_packages/filter/or_filter_for_wp_mixin.rb @@ -50,7 +50,7 @@ module Queries::WorkPackages::Filter::OrFilterForWpMixin end def filter_configurations - raise NotImplementedError + raise SubclassResponsibilityError end def create_instances diff --git a/app/models/sharing_strategies/base_strategy.rb b/app/models/sharing_strategies/base_strategy.rb index cb47cf22d90..a9061e11974 100644 --- a/app/models/sharing_strategies/base_strategy.rb +++ b/app/models/sharing_strategies/base_strategy.rb @@ -40,36 +40,36 @@ module SharingStrategies def available_roles # format: [{ label: "Role name", value: 42, description: "Role description", default: true }] - raise NotImplementedError, "Override in a subclass and return an array of roles that should be displayed" + raise SubclassResponsibilityError, "Override in a subclass and return an array of roles that should be displayed" end def viewable? - raise NotImplementedError, + raise SubclassResponsibilityError, "Override in a subclass and return true if the current user can view who the entity is shared with" end def manageable? - raise NotImplementedError, "Override in a subclass and return true if the current user can manage sharing" + raise SubclassResponsibilityError, "Override in a subclass and return true if the current user can manage sharing" end def create_contract_class - raise NotImplementedError, "Override in a subclass and return the contract class for creating a share" + raise SubclassResponsibilityError, "Override in a subclass and return the contract class for creating a share" end def update_contract_class - raise NotImplementedError, "Override in a subclass and return the contract class for updating a share" + raise SubclassResponsibilityError, "Override in a subclass and return the contract class for updating a share" end def delete_contract_class - raise NotImplementedError, "Override in a subclass and return the contract class for deleting a share" + raise SubclassResponsibilityError, "Override in a subclass and return the contract class for deleting a share" end def share_description(share) - raise NotImplementedError, "Override in a subclass and return a description for the shared user" + raise SubclassResponsibilityError, "Override in a subclass and return a description for the shared user" end def title - raise NotImplementedError, "Override in a subclass and return a title for the sharing dialog" + raise SubclassResponsibilityError, "Override in a subclass and return a title for the sharing dialog" end def enterprise_feature diff --git a/app/models/type/form_group.rb b/app/models/type/form_group.rb index 7014859dff5..dbdb95d27af 100644 --- a/app/models/type/form_group.rb +++ b/app/models/type/form_group.rb @@ -57,10 +57,10 @@ class Type::FormGroup end def members - raise NotImplementedError + raise SubclassResponsibilityError end def active_members(_project) - raise NotImplementedError + raise SubclassResponsibilityError end end diff --git a/app/models/user_password.rb b/app/models/user_password.rb index 35f027946d9..4b8fd2290cf 100644 --- a/app/models/user_password.rb +++ b/app/models/user_password.rb @@ -103,10 +103,10 @@ class UserPassword < ApplicationRecord # Require the implementation to provide a secure comparison def hash_matches?(_plain) - raise NotImplementedError, "Must be overridden by subclass" + raise SubclassResponsibilityError end def derive_password!(_input) - raise NotImplementedError, "Must be overridden by subclass" + raise SubclassResponsibilityError end end diff --git a/app/models/users/function_user.rb b/app/models/users/function_user.rb index f1bbf2f8d3a..95b1c04c04f 100644 --- a/app/models/users/function_user.rb +++ b/app/models/users/function_user.rb @@ -45,7 +45,7 @@ module Users::FunctionUser def builtin? = true - def name(*_args); raise NotImplementedError end + def name(*_args) = raise SubclassResponsibilityError def mail = nil diff --git a/app/policies/scm/authorization_policy.rb b/app/policies/scm/authorization_policy.rb index 132aa7cddff..4e67e48b74d 100644 --- a/app/policies/scm/authorization_policy.rb +++ b/app/policies/scm/authorization_policy.rb @@ -51,7 +51,7 @@ class SCM::AuthorizationPolicy # Determines whether the given request is a read access # Must be implemented by descendents of this policy. def readonly_request?(_params) - raise NotImplementedError + raise SubclassResponsibilityError end ## diff --git a/app/seeders/basic_data/model_seeder.rb b/app/seeders/basic_data/model_seeder.rb index 5aece770aee..f2f032a0d0e 100644 --- a/app/seeders/basic_data/model_seeder.rb +++ b/app/seeders/basic_data/model_seeder.rb @@ -68,7 +68,7 @@ module BasicData end def model_attributes(model_data) - raise NotImplementedError + raise SubclassResponsibilityError end def applicable? diff --git a/app/seeders/basic_data_seeder.rb b/app/seeders/basic_data_seeder.rb index 733566e3d19..c2919e13860 100644 --- a/app/seeders/basic_data_seeder.rb +++ b/app/seeders/basic_data_seeder.rb @@ -29,7 +29,7 @@ #++ class BasicDataSeeder < CompositeSeeder def data_seeder_classes - raise NotImplementedError + raise SubclassResponsibilityError end def namespace diff --git a/app/seeders/composite_seeder.rb b/app/seeders/composite_seeder.rb index 80fb3625140..3c2ac929f30 100644 --- a/app/seeders/composite_seeder.rb +++ b/app/seeders/composite_seeder.rb @@ -50,7 +50,7 @@ class CompositeSeeder < Seeder end def data_seeder_classes - raise NotImplementedError, "has to be implemented by subclasses" + raise SubclassResponsibilityError end def discovered_seeders @@ -71,7 +71,7 @@ class CompositeSeeder < Seeder end def namespace - raise NotImplementedError, "has to be implemented by subclasses" + raise SubclassResponsibilityError end ## diff --git a/app/seeders/seeder.rb b/app/seeders/seeder.rb index d858dd84432..52174768f9b 100644 --- a/app/seeders/seeder.rb +++ b/app/seeders/seeder.rb @@ -68,7 +68,7 @@ class Seeder end def seed_data! - raise NotImplementedError + raise SubclassResponsibilityError end def applicable? diff --git a/app/services/api/parse_resource_params_service.rb b/app/services/api/parse_resource_params_service.rb index 23a863e82d6..fbfcf90ce99 100644 --- a/app/services/api/parse_resource_params_service.rb +++ b/app/services/api/parse_resource_params_service.rb @@ -60,7 +60,7 @@ module API private def deduce_representer(_model) - raise NotImplementedError + raise SubclassResponsibilityError end def parsing_representer diff --git a/app/services/base_services/base_callable.rb b/app/services/base_services/base_callable.rb index 7b746f3f0cd..b5951d18025 100644 --- a/app/services/base_services/base_callable.rb +++ b/app/services/base_services/base_callable.rb @@ -59,7 +59,7 @@ module BaseServices attr_accessor :params def perform(*) - raise NotImplementedError + raise SubclassResponsibilityError end private diff --git a/app/services/base_services/base_contracted.rb b/app/services/base_services/base_contracted.rb index 8f028b15eb4..0cf0c93bde6 100644 --- a/app/services/base_services/base_contracted.rb +++ b/app/services/base_services/base_contracted.rb @@ -117,7 +117,7 @@ module BaseServices end def default_contract_class - raise NotImplementedError + raise SubclassResponsibilityError end def namespace diff --git a/app/services/base_services/write.rb b/app/services/base_services/write.rb index 45edaf4705e..348a105f108 100644 --- a/app/services/base_services/write.rb +++ b/app/services/base_services/write.rb @@ -67,11 +67,11 @@ module BaseServices end def instance(_params) - raise NotImplementedError + raise SubclassResponsibilityError end def default_contract_class - raise NotImplementedError + raise SubclassResponsibilityError end def instance_class diff --git a/app/services/bulk_services/project_mappings/base_create_service.rb b/app/services/bulk_services/project_mappings/base_create_service.rb index fea2c8bbd43..644b56a1409 100644 --- a/app/services/bulk_services/project_mappings/base_create_service.rb +++ b/app/services/bulk_services/project_mappings/base_create_service.rb @@ -107,12 +107,12 @@ module BulkServices # @return [Symbol] the permission required to create the mapping def permission - raise NotImplementedError + raise SubclassResponsibilityError end # @return [Symbol] the column name of the mapping def model_foreign_key_id - raise NotImplementedError + raise SubclassResponsibilityError end def attributes_service_class diff --git a/app/services/bulk_services/project_mappings/mapping_context_base.rb b/app/services/bulk_services/project_mappings/mapping_context_base.rb index 9a27261df03..d2bc8df05f8 100644 --- a/app/services/bulk_services/project_mappings/mapping_context_base.rb +++ b/app/services/bulk_services/project_mappings/mapping_context_base.rb @@ -39,11 +39,11 @@ module BulkServices end def mapping_attributes_for_all_projects(params) - raise NotImplementedError, "This method must be implemented in a subclass" + raise SubclassResponsibilityError end def incoming_projects - raise NotImplementedError, "This method must be implemented in a subclass" + raise SubclassResponsibilityError end end end diff --git a/app/services/copy/dependency.rb b/app/services/copy/dependency.rb index 2f90ca1fd20..f52a9bdf4f8 100644 --- a/app/services/copy/dependency.rb +++ b/app/services/copy/dependency.rb @@ -96,7 +96,7 @@ module Copy end def copy_dependency(params:) - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/app/services/custom_fields/hierarchy/hierarchical_item_service.rb b/app/services/custom_fields/hierarchy/hierarchical_item_service.rb index 2d0cb23593b..98fec862060 100644 --- a/app/services/custom_fields/hierarchy/hierarchical_item_service.rb +++ b/app/services/custom_fields/hierarchy/hierarchical_item_service.rb @@ -159,9 +159,9 @@ module CustomFields Success() end + # Soft delete the item and children def soft_delete_item(item:) - # Soft delete the item and children - raise NotImplementedError + raise SubclassResponsibilityError end # Returns a hash of Item => { Item => [Item] } diff --git a/app/services/groups/concerns/membership_manipulation.rb b/app/services/groups/concerns/membership_manipulation.rb index dc074a1110d..2d24f38fb2f 100644 --- a/app/services/groups/concerns/membership_manipulation.rb +++ b/app/services/groups/concerns/membership_manipulation.rb @@ -65,7 +65,7 @@ module Groups::Concerns end def modify_members_and_roles(_params) - raise NotImplementedError + raise SubclassResponsibilityError end def execute_query(query) diff --git a/app/services/incoming_emails/handlers/base.rb b/app/services/incoming_emails/handlers/base.rb index a580f2502f9..bcb709775f1 100644 --- a/app/services/incoming_emails/handlers/base.rb +++ b/app/services/incoming_emails/handlers/base.rb @@ -41,12 +41,12 @@ module IncomingEmails::Handlers # Override in subclasses to determine if this handler can process the email def self.handles?(email, reference:, automated_email:) - raise NotImplementedError, "Subclasses must implement can_handle? method" + raise SubclassResponsibilityError, "Subclasses must implement handles? method" end # Override in subclasses to process the email def process - raise NotImplementedError, "Subclasses must implement handle method" + raise SubclassResponsibilityError, "Subclasses must implement process method" end def cleaned_up_text_body diff --git a/app/services/ldap/base_service.rb b/app/services/ldap/base_service.rb index d6e81cb8052..51d7e059b9f 100644 --- a/app/services/ldap/base_service.rb +++ b/app/services/ldap/base_service.rb @@ -45,7 +45,7 @@ module Ldap end def perform - raise NotImplementedError + raise SubclassResponsibilityError end protected diff --git a/app/services/members/concerns/notification_sender.rb b/app/services/members/concerns/notification_sender.rb index 8255d6720e9..91b1acc226f 100644 --- a/app/services/members/concerns/notification_sender.rb +++ b/app/services/members/concerns/notification_sender.rb @@ -55,7 +55,7 @@ module Members::Concerns::NotificationSender end def event_type - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/app/services/reports/report.rb b/app/services/reports/report.rb index 5cbc37b9153..a78bb3b4f27 100644 --- a/app/services/reports/report.rb +++ b/app/services/reports/report.rb @@ -47,18 +47,18 @@ class Reports::Report # ---- every report needs to implement these methods to supply all needed data for a report ----- def field - raise NotImplementedError + raise SubclassResponsibilityError end def rows - raise NotImplementedError + raise SubclassResponsibilityError end def data - raise NotImplementedError + raise SubclassResponsibilityError end def title - raise NotImplementedError + raise SubclassResponsibilityError end end diff --git a/app/services/work_packages/bulk/bulked_service.rb b/app/services/work_packages/bulk/bulked_service.rb index 06f6eae2772..0c6b29080c1 100644 --- a/app/services/work_packages/bulk/bulked_service.rb +++ b/app/services/work_packages/bulk/bulked_service.rb @@ -73,11 +73,11 @@ module WorkPackages end def alter_work_package(_work_package, _params) - raise NotImplementedError + raise SubclassResponsibilityError end def call_move_hook(_work_package, _params) - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/app/workers/exports/export_job.rb b/app/workers/exports/export_job.rb index 4fad5e98617..14af27ffd7a 100644 --- a/app/workers/exports/export_job.rb +++ b/app/workers/exports/export_job.rb @@ -66,7 +66,7 @@ module Exports attr_accessor :export, :current_user, :mime_type, :query, :options def prepare! - raise NotImplementedError + raise SubclassResponsibilityError end def list_export? diff --git a/app/workers/mails/deliver_job.rb b/app/workers/mails/deliver_job.rb index 4cff5c80bb4..0aefee241ee 100644 --- a/app/workers/mails/deliver_job.rb +++ b/app/workers/mails/deliver_job.rb @@ -57,12 +57,12 @@ class Mails::DeliverJob < ApplicationJob # To be implemented by subclasses. # Returns a Mail::Message, or nil if no message should be sent. def render_mail - raise NotImplementedError, "SubclassResponsibility" + raise SubclassResponsibilityError end def build_mail render_mail - rescue NotImplementedError + rescue SubclassResponsibilityError # Notify subclass of the need to implement raise rescue StandardError => e diff --git a/app/workers/mails/member_job.rb b/app/workers/mails/member_job.rb index f0b861ef773..e86ed27a4f1 100644 --- a/app/workers/mails/member_job.rb +++ b/app/workers/mails/member_job.rb @@ -69,11 +69,11 @@ class Mails::MemberJob < ApplicationJob end def send_for_group_user(_current_user, _member, _group, _message) - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def send_for_project_user(_current_user, _member, _message) - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def send_updated_global(current_user, member, member_message) diff --git a/app/workers/mails/watcher_job.rb b/app/workers/mails/watcher_job.rb index 8f1ecc64070..494360b9db9 100644 --- a/app/workers/mails/watcher_job.rb +++ b/app/workers/mails/watcher_job.rb @@ -73,6 +73,6 @@ class Mails::WatcherJob < Mails::DeliverJob end def action - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end end diff --git a/app/workers/work_packages/bulk_job.rb b/app/workers/work_packages/bulk_job.rb index de61a594fad..63330701ba0 100644 --- a/app/workers/work_packages/bulk_job.rb +++ b/app/workers/work_packages/bulk_job.rb @@ -72,7 +72,7 @@ module WorkPackages end def service_class - raise NotImplementedError + raise SubclassResponsibilityError end def successful_status_update(call) diff --git a/db/migrate/tables/base.rb b/db/migrate/tables/base.rb index d5622b4663a..afeec9fa31c 100644 --- a/db/migrate/tables/base.rb +++ b/db/migrate/tables/base.rb @@ -56,6 +56,6 @@ class Tables::Base end def self.table(_migration) - raise NotImplementedError + raise SubclassResponsibilityError end end diff --git a/lib/api/decorators/simple_form.rb b/lib/api/decorators/simple_form.rb index f25826d1d7a..11854028596 100644 --- a/lib/api/decorators/simple_form.rb +++ b/lib/api/decorators/simple_form.rb @@ -53,15 +53,15 @@ module API end def commit_method - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def form_url - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def resource_url - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def payload_representer @@ -79,11 +79,11 @@ module API end def contract_class - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def model - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end private diff --git a/lib/api/root_api.rb b/lib/api/root_api.rb index abf986df567..ea028b4a116 100644 --- a/lib/api/root_api.rb +++ b/lib/api/root_api.rb @@ -303,6 +303,8 @@ module API error_response ActiveRecord::RecordNotFound, ::API::Errors::NotFound, log: false error_response ActiveRecord::StaleObjectError, ::API::Errors::Conflict, log: false + + # TODO: Where do we expect this to be raised and **not** be a programming error? error_response NotImplementedError, ::API::Errors::NotImplemented, log: false error_response MultiJson::ParseError, ::API::Errors::ParseError diff --git a/lib/api/utilities/endpoints/bodied.rb b/lib/api/utilities/endpoints/bodied.rb index 185ab430e2d..dc9d29911ff 100644 --- a/lib/api/utilities/endpoints/bodied.rb +++ b/lib/api/utilities/endpoints/bodied.rb @@ -33,7 +33,7 @@ module API include NamespacedLookup def default_instance_generator(_model) - raise NotImplementedError + raise SubclassResponsibilityError end def default_params_modifier @@ -146,11 +146,11 @@ module API private def present_success(_request, _call) - raise NotImplementedError + raise SubclassResponsibilityError end def present_error(_call) - raise NotImplementedError + raise SubclassResponsibilityError end def success?(call) @@ -166,15 +166,15 @@ module API end def deduce_parse_representer - raise NotImplementedError + raise SubclassResponsibilityError end def deduce_parse_service - raise NotImplementedError + raise SubclassResponsibilityError end def deduce_render_representer - raise NotImplementedError + raise SubclassResponsibilityError end def deduce_api_namespace @@ -182,7 +182,7 @@ module API end def update_or_create - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/lib/api/utilities/endpoints/index.rb b/lib/api/utilities/endpoints/index.rb index 80b58e1d556..780a765b241 100644 --- a/lib/api/utilities/endpoints/index.rb +++ b/lib/api/utilities/endpoints/index.rb @@ -44,7 +44,7 @@ module API end def mount - raise NotImplementedError + raise SubclassResponsibilityError end attr_accessor :model, @@ -55,7 +55,7 @@ module API private def deduce_render_representer - raise NotImplementedError + raise SubclassResponsibilityError end def deduce_api_namespace diff --git a/lib/api/utilities/endpoints/modify.rb b/lib/api/utilities/endpoints/modify.rb index d3d721a9b44..774399b320d 100644 --- a/lib/api/utilities/endpoints/modify.rb +++ b/lib/api/utilities/endpoints/modify.rb @@ -39,7 +39,7 @@ module API private def present_success(_request, _call) - raise NotImplementedError + raise SubclassResponsibilityError end def present_error(call) diff --git a/lib/api/utilities/endpoints/show.rb b/lib/api/utilities/endpoints/show.rb index 174c61c2fcd..65528e93f1a 100644 --- a/lib/api/utilities/endpoints/show.rb +++ b/lib/api/utilities/endpoints/show.rb @@ -74,7 +74,7 @@ module API private def deduce_render_representer - raise NotImplementedError + raise SubclassResponsibilityError end def deduce_api_namespace diff --git a/lib/api/utilities/meta_property.rb b/lib/api/utilities/meta_property.rb index 07b6d4068ef..f3ecb50594a 100644 --- a/lib/api/utilities/meta_property.rb +++ b/lib/api/utilities/meta_property.rb @@ -60,7 +60,7 @@ module API end def meta_representer_class - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/lib/api/utilities/representer_to_json_cache.rb b/lib/api/utilities/representer_to_json_cache.rb index 12a058b19da..09002ea4d0f 100644 --- a/lib/api/utilities/representer_to_json_cache.rb +++ b/lib/api/utilities/representer_to_json_cache.rb @@ -44,7 +44,7 @@ module API end def json_cache_key - raise NotImplementedError + raise SubclassResponsibilityError end private diff --git a/lib/api/v3/queries/form_representer.rb b/lib/api/v3/queries/form_representer.rb index 011b67746d6..0c5dec11c6d 100644 --- a/lib/api/v3/queries/form_representer.rb +++ b/lib/api/v3/queries/form_representer.rb @@ -63,19 +63,19 @@ module API end def commit_action - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def commit_method - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def form_url - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def resource_url - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def payload_representer diff --git a/lib/api/v3/queries/schemas/filter_dependency_representer.rb b/lib/api/v3/queries/schemas/filter_dependency_representer.rb index eb8be59f7d8..794c08e6cc9 100644 --- a/lib/api/v3/queries/schemas/filter_dependency_representer.rb +++ b/lib/api/v3/queries/schemas/filter_dependency_representer.rb @@ -82,11 +82,11 @@ module API end def type - raise NotImplementedError, "Subclass has to implement #type" + raise SubclassResponsibilityError, "Subclass has to implement #type" end def href_callback - raise NotImplementedError, "Subclass has to implement #href_callback" + raise SubclassResponsibilityError, "Subclass has to implement #href_callback" end attr_accessor :operator diff --git a/lib/api/v3/queries/schemas/principal_filter_dependency_representer.rb b/lib/api/v3/queries/schemas/principal_filter_dependency_representer.rb index 95b3f301109..ff4f572f099 100644 --- a/lib/api/v3/queries/schemas/principal_filter_dependency_representer.rb +++ b/lib/api/v3/queries/schemas/principal_filter_dependency_representer.rb @@ -47,7 +47,7 @@ module API private def filter_query - raise NotImplementedError, "Subclasses need to implement #filter_query" + raise SubclassResponsibilityError, "Subclasses need to implement #filter_query" end end end diff --git a/lib/api/v3/schemas/schema_collection_representer.rb b/lib/api/v3/schemas/schema_collection_representer.rb index cc1cd6cdf54..221c9219a94 100644 --- a/lib/api/v3/schemas/schema_collection_representer.rb +++ b/lib/api/v3/schemas/schema_collection_representer.rb @@ -56,7 +56,7 @@ module API attr_accessor :form_embedded def model_self_link(_model) - raise NotImplementedError, "Subclass has to implement this" + raise SubclassResponsibilityError end end end diff --git a/lib/api/v3/work_packages/eager_loading/base.rb b/lib/api/v3/work_packages/eager_loading/base.rb index 874f7dcc80c..f7aaddd4e58 100644 --- a/lib/api/v3/work_packages/eager_loading/base.rb +++ b/lib/api/v3/work_packages/eager_loading/base.rb @@ -39,7 +39,7 @@ module API end def apply(_work_package) - raise NotImplementedError + raise SubclassResponsibilityError end def self.module diff --git a/lib/api/v3/work_packages/schema/base_work_package_schema.rb b/lib/api/v3/work_packages/schema/base_work_package_schema.rb index a0308918e3b..b9425124322 100644 --- a/lib/api/v3/work_packages/schema/base_work_package_schema.rb +++ b/lib/api/v3/work_packages/schema/base_work_package_schema.rb @@ -80,7 +80,7 @@ module API private def contract - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/lib/open_project/rate_limiting/base.rb b/lib/open_project/rate_limiting/base.rb index 2d97759e14a..fc0b784244e 100644 --- a/lib/open_project/rate_limiting/base.rb +++ b/lib/open_project/rate_limiting/base.rb @@ -92,15 +92,15 @@ module OpenProject end def discriminator(request) - raise NotImplementedError + raise SubclassResponsibilityError end def default_limit - raise NotImplementedError + raise SubclassResponsibilityError end def default_period - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/lib/open_project/scm/adapters/checkout_instructions.rb b/lib/open_project/scm/adapters/checkout_instructions.rb index e8f6f282ea7..3bbbafa2b18 100644 --- a/lib/open_project/scm/adapters/checkout_instructions.rb +++ b/lib/open_project/scm/adapters/checkout_instructions.rb @@ -59,7 +59,7 @@ module OpenProject ## # Returns the checkout command for this vendor def checkout_command - raise NotImplementedError + raise SubclassResponsibilityError end private diff --git a/lib/open_project/text_formatting/formats/base_format.rb b/lib/open_project/text_formatting/formats/base_format.rb index bfb082e301f..737858c8fce 100644 --- a/lib/open_project/text_formatting/formats/base_format.rb +++ b/lib/open_project/text_formatting/formats/base_format.rb @@ -32,11 +32,11 @@ module OpenProject::TextFormatting::Formats class BaseFormat class << self def format - raise NotImplementedError + raise SubclassResponsibilityError end def priority - raise NotImplementedError + raise SubclassResponsibilityError end def helper diff --git a/lib/open_project/text_formatting/formats/base_formatter.rb b/lib/open_project/text_formatting/formats/base_formatter.rb index 55fe0093f1f..b9308ed8db4 100644 --- a/lib/open_project/text_formatting/formats/base_formatter.rb +++ b/lib/open_project/text_formatting/formats/base_formatter.rb @@ -39,7 +39,7 @@ module OpenProject::TextFormatting::Formats end def to_html(text) - raise NotImplementedError + raise SubclassResponsibilityError end protected diff --git a/lib/open_project/text_formatting/matchers/link_handlers/base.rb b/lib/open_project/text_formatting/matchers/link_handlers/base.rb index 40178cbd16b..6dc2d2484e5 100644 --- a/lib/open_project/text_formatting/matchers/link_handlers/base.rb +++ b/lib/open_project/text_formatting/matchers/link_handlers/base.rb @@ -62,7 +62,7 @@ module OpenProject::TextFormatting::Matchers ## # Test whether we should try to resolve the given link def applicable? - raise NotImplementedError + raise SubclassResponsibilityError end ## @@ -70,7 +70,7 @@ module OpenProject::TextFormatting::Matchers # and matchers. # If nil is returned, the link remains as-is. def call - raise NotImplementedError + raise SubclassResponsibilityError end def oid diff --git a/lib/open_project/text_formatting/matchers/regex_matcher.rb b/lib/open_project/text_formatting/matchers/regex_matcher.rb index a2cc6dea7ef..d23fd3b2caf 100644 --- a/lib/open_project/text_formatting/matchers/regex_matcher.rb +++ b/lib/open_project/text_formatting/matchers/regex_matcher.rb @@ -63,13 +63,13 @@ module OpenProject::TextFormatting ## # Get the regexp that matches the content def self.regexp - raise NotImplementedError + raise SubclassResponsibilityError end ## # Called with a match from the regexp on the node's content def self.process_match(matchdata, matched_string, context) - raise NotImplementedError + raise SubclassResponsibilityError end ## diff --git a/lib/subclass_responsibility_error.rb b/lib/subclass_responsibility_error.rb new file mode 100644 index 00000000000..6175114ac26 --- /dev/null +++ b/lib/subclass_responsibility_error.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ +class SubclassResponsibilityError < StandardError + def initialize(message = nil) + message ||= "The subclass needs to implement this method." + + super + end +end diff --git a/modules/avatars/app/controllers/avatars/base_controller.rb b/modules/avatars/app/controllers/avatars/base_controller.rb index d2fcaa2ff9e..d35d4968877 100644 --- a/modules/avatars/app/controllers/avatars/base_controller.rb +++ b/modules/avatars/app/controllers/avatars/base_controller.rb @@ -32,7 +32,7 @@ module ::Avatars private def redirect_path - raise NotImplementedError + raise SubclassResponsibilityError end def ensure_enabled diff --git a/modules/bim/app/representers/bim/bcf/api/v2_1/viewpoints/base_representer.rb b/modules/bim/app/representers/bim/bcf/api/v2_1/viewpoints/base_representer.rb index 001787ed7b0..3ed1daee7b0 100644 --- a/modules/bim/app/representers/bim/bcf/api/v2_1/viewpoints/base_representer.rb +++ b/modules/bim/app/representers/bim/bcf/api/v2_1/viewpoints/base_representer.rb @@ -39,7 +39,7 @@ module Bim::Bcf::API::V2_1 protected def scope - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/modules/bim/lib/open_project/bim/bcf_xml/base_writer.rb b/modules/bim/lib/open_project/bim/bcf_xml/base_writer.rb index 3bdb912969c..3d39b5c8a58 100644 --- a/modules/bim/lib/open_project/bim/bcf_xml/base_writer.rb +++ b/modules/bim/lib/open_project/bim/bcf_xml/base_writer.rb @@ -11,7 +11,7 @@ module OpenProject::Bim::BcfXml protected def root_node - raise NotImplementedError + raise SubclassResponsibilityError end def root_node_attributes diff --git a/modules/costs/app/models/cost_scopes.rb b/modules/costs/app/models/cost_scopes.rb index 3881c3221a2..c3aa40b1bcb 100644 --- a/modules/costs/app/models/cost_scopes.rb +++ b/modules/costs/app/models/cost_scopes.rb @@ -18,15 +18,15 @@ module CostScopes end def view_allowed_entries_permission - raise NotImplementedError + raise SubclassResponsibilityError end def view_allowed_own_entries_permission - raise NotImplementedError + raise SubclassResponsibilityError end def view_rates_permissions - raise NotImplementedError + raise SubclassResponsibilityError end def with_visible_costs_on(scope, user: User.current, project: nil) diff --git a/modules/costs/app/models/entry/costs.rb b/modules/costs/app/models/entry/costs.rb index dcd98658273..5227d9727be 100644 --- a/modules/costs/app/models/entry/costs.rb +++ b/modules/costs/app/models/entry/costs.rb @@ -61,7 +61,7 @@ module Entry::Costs end def cost_attribute - raise NotImplementedError + raise SubclassResponsibilityError end end end diff --git a/modules/costs/app/models/work_package/abstract_costs.rb b/modules/costs/app/models/work_package/abstract_costs.rb index f76168ca7d8..48075ee2fd4 100644 --- a/modules/costs/app/models/work_package/abstract_costs.rb +++ b/modules/costs/app/models/work_package/abstract_costs.rb @@ -50,15 +50,15 @@ class WorkPackage # # @return [Class] Class of the model the costs are based on, e.g. CostEntry or TimeEntry. def costs_model - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def costs_sum_alias - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end def subselect_alias - raise NotImplementedError, "subclass responsibility" + raise SubclassResponsibilityError end private diff --git a/modules/grids/app/components/grids/widget_component.rb b/modules/grids/app/components/grids/widget_component.rb index b3f8337cab6..29198778dbf 100644 --- a/modules/grids/app/components/grids/widget_component.rb +++ b/modules/grids/app/components/grids/widget_component.rb @@ -49,7 +49,7 @@ module Grids # @abstract Subclasses must implement this method. # @return [String] a title suitable for display to users. def title - raise NotImplementedError, "#{self.class} must implement #{__method__}" + raise SubclassResponsibilityError, "#{self.class} must implement #{__method__}" end def widget_wrapper(**, &) diff --git a/modules/grids/app/controllers/grids/widget_controller.rb b/modules/grids/app/controllers/grids/widget_controller.rb index 2bdaa22698c..9a21b07562a 100644 --- a/modules/grids/app/controllers/grids/widget_controller.rb +++ b/modules/grids/app/controllers/grids/widget_controller.rb @@ -33,7 +33,7 @@ class Grids::WidgetController < Grids::BaseInOptionalProjectController include OpTurbo::FlashStreamHelper def show - raise NotImplementedError + raise SubclassResponsibilityError end private diff --git a/modules/grids/lib/grids/configuration/registration.rb b/modules/grids/lib/grids/configuration/registration.rb index dfaab615044..57c56c8dc71 100644 --- a/modules/grids/lib/grids/configuration/registration.rb +++ b/modules/grids/lib/grids/configuration/registration.rb @@ -93,7 +93,7 @@ module Grids::Configuration end def from_scope(_scope) - raise NotImplementedError + raise SubclassResponsibilityError end def all_scopes diff --git a/modules/reporting/lib/report/filter.rb b/modules/reporting/lib/report/filter.rb index 6374ccb99f8..f09bcee98f8 100644 --- a/modules/reporting/lib/report/filter.rb +++ b/modules/reporting/lib/report/filter.rb @@ -40,6 +40,6 @@ class Report::Filter end def self.from_hash - raise NotImplementedError + raise SubclassResponsibilityError end end diff --git a/modules/reporting/lib/report/filter/base.rb b/modules/reporting/lib/report/filter/base.rb index 5a579bc2657..8c9f211fe70 100644 --- a/modules/reporting/lib/report/filter/base.rb +++ b/modules/reporting/lib/report/filter/base.rb @@ -175,7 +175,7 @@ class Report::Filter end def to_hash - raise NotImplementedError + raise SubclassResponsibilityError end def transformed_values diff --git a/modules/reporting/lib/report/filter/no_filter.rb b/modules/reporting/lib/report/filter/no_filter.rb index 3cbfba4ba7a..badcbea8fee 100644 --- a/modules/reporting/lib/report/filter/no_filter.rb +++ b/modules/reporting/lib/report/filter/no_filter.rb @@ -32,6 +32,6 @@ class Report::Filter::NoFilter < Report::Filter::Base singleton def sql_statement - raise NotImplementedError, "My subclass should have overwritten 'sql_statement'" + raise SubclassResponsibilityError, "Subclass should have overwritten 'sql_statement'" end end diff --git a/modules/reporting/lib/report/group_by.rb b/modules/reporting/lib/report/group_by.rb index 74ca3638e78..75aaf219c8f 100644 --- a/modules/reporting/lib/report/group_by.rb +++ b/modules/reporting/lib/report/group_by.rb @@ -42,6 +42,6 @@ class Report::GroupBy end def self.from_hash - raise NotImplementedError + raise SubclassResponsibilityError end end diff --git a/modules/reporting/lib/widget/base.rb b/modules/reporting/lib/widget/base.rb index dd824e757ee..23e15e546b9 100644 --- a/modules/reporting/lib/widget/base.rb +++ b/modules/reporting/lib/widget/base.rb @@ -65,7 +65,7 @@ module ::Widget ## # Render this widget. Abstract method. Needs to call #write at least once def render - raise NotImplementedError, "#render is missing in my subclass #{self.class}" + raise SubclassResponsibilityError, "#render is missing in subclass #{self.class}" end ## diff --git a/modules/storages/app/common/storages/adapters/authentication_strategies/authentication_strategy.rb b/modules/storages/app/common/storages/adapters/authentication_strategies/authentication_strategy.rb index 3c391fcba23..c1b7a70df21 100644 --- a/modules/storages/app/common/storages/adapters/authentication_strategies/authentication_strategy.rb +++ b/modules/storages/app/common/storages/adapters/authentication_strategies/authentication_strategy.rb @@ -36,7 +36,7 @@ module Storages include Dry::Monads[:result] def call(**) - raise Errors::SubclassResponsibility + raise SubclassResponsibilityError end end end diff --git a/modules/storages/app/common/storages/adapters/connection_validators/base_validator_group.rb b/modules/storages/app/common/storages/adapters/connection_validators/base_validator_group.rb index f5db8f0bdd6..e56f1a467c7 100644 --- a/modules/storages/app/common/storages/adapters/connection_validators/base_validator_group.rb +++ b/modules/storages/app/common/storages/adapters/connection_validators/base_validator_group.rb @@ -38,7 +38,7 @@ module Storages new(storage).call end - def self.key = raise ::Storages::Errors::SubclassResponsibility + def self.key = raise SubclassResponsibilityError def initialize(storage) @storage = storage @@ -55,7 +55,7 @@ module Storages private - def validate = raise ::Storages::Errors::SubclassResponsibility + def validate = raise SubclassResponsibilityError def register_checks(*keys) keys.each { @results.register_check(it) } diff --git a/modules/storages/app/common/storages/adapters/oauth_configuration_base.rb b/modules/storages/app/common/storages/adapters/oauth_configuration_base.rb index 4f1ef8050ea..814d08c70c9 100644 --- a/modules/storages/app/common/storages/adapters/oauth_configuration_base.rb +++ b/modules/storages/app/common/storages/adapters/oauth_configuration_base.rb @@ -31,11 +31,11 @@ module Storages module Adapters class OAuthConfigurationBase - def scope = raise ::Storages::Errors::SubclassResponsibility + def scope = raise SubclassResponsibilityError - def basic_rack_oauth_client = raise ::Storages::Errors::SubclassResponsibility + def basic_rack_oauth_client = raise SubclassResponsibilityError - def to_httpx_oauth_config = raise ::Storages::Errors::SubclassResponsibility + def to_httpx_oauth_config = raise SubclassResponsibilityError def authorization_uri(state: nil) basic_rack_oauth_client.authorization_uri(scope:, state:) diff --git a/modules/storages/app/common/storages/adapters/providers/sharepoint/base.rb b/modules/storages/app/common/storages/adapters/providers/sharepoint/base.rb index 2e314dc422a..b54668c7eb4 100644 --- a/modules/storages/app/common/storages/adapters/providers/sharepoint/base.rb +++ b/modules/storages/app/common/storages/adapters/providers/sharepoint/base.rb @@ -70,7 +70,7 @@ module Storages { drive_id:, location: Peripherals::ParentFolder.new(item_id || "/") } end - def request_uri = raise Errors::SubclassResponsibility + def request_uri = raise SubclassResponsibilityError # @param error [Results::Error] # @return [void] diff --git a/modules/storages/app/common/storages/errors.rb b/modules/storages/app/common/storages/errors.rb index a77e5f710c7..656c79dceac 100644 --- a/modules/storages/app/common/storages/errors.rb +++ b/modules/storages/app/common/storages/errors.rb @@ -36,12 +36,6 @@ module Storages class ConfigurationError < BaseError; end - class SubclassResponsibility < BaseError - def message - "A subclass needs to implement its own version of this method." - end - end - class IntegrationJobError < BaseError; end end end diff --git a/modules/storages/app/models/queries/storages/projects/filter/storage_filter_mixin.rb b/modules/storages/app/models/queries/storages/projects/filter/storage_filter_mixin.rb index 240fbe1a405..a283689ceeb 100644 --- a/modules/storages/app/models/queries/storages/projects/filter/storage_filter_mixin.rb +++ b/modules/storages/app/models/queries/storages/projects/filter/storage_filter_mixin.rb @@ -54,6 +54,6 @@ module Queries::Storages::Projects::Filter::StorageFilterMixin end def filter_column - raise NotImplementedError + raise SubclassResponsibilityError end end diff --git a/modules/storages/app/models/queries/storages/work_packages/filter/storages_filter_mixin.rb b/modules/storages/app/models/queries/storages/work_packages/filter/storages_filter_mixin.rb index c21d9b88e07..8ddec7d4524 100644 --- a/modules/storages/app/models/queries/storages/work_packages/filter/storages_filter_mixin.rb +++ b/modules/storages/app/models/queries/storages/work_packages/filter/storages_filter_mixin.rb @@ -41,14 +41,14 @@ module Queries::Storages::WorkPackages::Filter::StoragesFilterMixin # # Used in the where and joins clauses. def filter_model - raise NotImplementedError + raise SubclassResponsibilityError end # Returns the column name for which the filter will apply. # # Used in the where clause. def filter_column - raise NotImplementedError + raise SubclassResponsibilityError end def allowed_values diff --git a/modules/storages/app/models/storages/storage.rb b/modules/storages/app/models/storages/storage.rb index 4fcfb544e60..6ed6f4ee3db 100644 --- a/modules/storages/app/models/storages/storage.rb +++ b/modules/storages/app/models/storages/storage.rb @@ -87,7 +87,7 @@ module Storages .to_h.with_indifferent_access end - def short_provider_name = raise Errors::SubclassResponsibility + def short_provider_name = raise SubclassResponsibilityError def allowed_by_enterprise_token? = true @@ -144,20 +144,20 @@ module Storages alias automatic_management_enabled automatically_managed - def available_project_folder_modes = raise Errors::SubclassResponsibility + def available_project_folder_modes = raise SubclassResponsibilityError # Returns a value of an audience, if configured for this storage. # The presence of an audience signals that this storage prioritizes # remote authentication via Single-Sign-On if possible. - def audience = raise Errors::SubclassResponsibility + def audience = raise SubclassResponsibilityError - def authenticate_via_idp? = raise Errors::SubclassResponsibility + def authenticate_via_idp? = raise SubclassResponsibilityError - def authenticate_via_storage? = raise Errors::SubclassResponsibility + def authenticate_via_storage? = raise SubclassResponsibilityError def configured? = configuration_checks.values.all? - def configuration_checks = raise Errors::SubclassResponsibility + def configuration_checks = raise SubclassResponsibilityError def uri return unless host @@ -174,11 +174,11 @@ module Storages ["#{uri.scheme}://#{uri.host}#{port_part}"] end - def oauth_configuration = raise Errors::SubclassResponsibility + def oauth_configuration = raise SubclassResponsibilityError - def automatic_management_new_record? = raise Errors::SubclassResponsibility + def automatic_management_new_record? = raise SubclassResponsibilityError - def provider_fields_defaults = raise Errors::SubclassResponsibility + def provider_fields_defaults = raise SubclassResponsibilityError def non_confidential_configuration provider_fields.symbolize_keys diff --git a/modules/two_factor_authentication/app/controllers/two_factor_authentication/base_controller.rb b/modules/two_factor_authentication/app/controllers/two_factor_authentication/base_controller.rb index d0e9141dfa4..9c873a995dd 100644 --- a/modules/two_factor_authentication/app/controllers/two_factor_authentication/base_controller.rb +++ b/modules/two_factor_authentication/app/controllers/two_factor_authentication/base_controller.rb @@ -147,7 +147,7 @@ module ::TwoFactorAuthentication end def index_path - raise NotImplementedError + raise SubclassResponsibilityError end helper_method :index_path diff --git a/modules/two_factor_authentication/app/models/two_factor_authentication/device.rb b/modules/two_factor_authentication/app/models/two_factor_authentication/device.rb index 4f4563ae2e5..36d8197689f 100644 --- a/modules/two_factor_authentication/app/models/two_factor_authentication/device.rb +++ b/modules/two_factor_authentication/app/models/two_factor_authentication/device.rb @@ -92,7 +92,7 @@ module TwoFactorAuthentication end def self.device_type - raise NotImplementedError + raise SubclassResponsibilityError end def self.available_channels_in_strategy diff --git a/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/base.rb b/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/base.rb index 2e9d5fb86fb..f6322498a3a 100644 --- a/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/base.rb +++ b/modules/two_factor_authentication/lib/open_project/two_factor_authentication/token_strategy/base.rb @@ -63,7 +63,7 @@ module OpenProject::TwoFactorAuthentication end def self.identifier - raise NotImplementedError + raise SubclassResponsibilityError end def self.device_type diff --git a/modules/webhooks/app/workers/represented_webhook_job.rb b/modules/webhooks/app/workers/represented_webhook_job.rb index a1b79bac47d..c498d5b58b3 100644 --- a/modules/webhooks/app/workers/represented_webhook_job.rb +++ b/modules/webhooks/app/workers/represented_webhook_job.rb @@ -73,11 +73,11 @@ class RepresentedWebhookJob < WebhookJob end def payload_key - raise NotImplementedError + raise SubclassResponsibilityError end def payload_representer_class - raise NotImplementedError + raise SubclassResponsibilityError end def project_id # rubocop:disable Rails/Delegate diff --git a/modules/webhooks/lib/open_project/webhooks/event_resources/base.rb b/modules/webhooks/lib/open_project/webhooks/event_resources/base.rb index 501c2a1f29c..7c824fd747f 100644 --- a/modules/webhooks/lib/open_project/webhooks/event_resources/base.rb +++ b/modules/webhooks/lib/open_project/webhooks/event_resources/base.rb @@ -34,7 +34,7 @@ module OpenProject::Webhooks::EventResources end def available_actions - raise NotImplementedError + raise SubclassResponsibilityError end ## @@ -46,13 +46,13 @@ module OpenProject::Webhooks::EventResources ## # Get the name of this resource def resource_name - raise NotImplementedError + raise SubclassResponsibilityError end ## # Get the subscriptions for OP::Notifications def notification_names - raise NotImplementedError + raise SubclassResponsibilityError end protected diff --git a/modules/wikis/app/models/wikis/provider.rb b/modules/wikis/app/models/wikis/provider.rb index 57929bbc49d..ca6b31fe37d 100644 --- a/modules/wikis/app/models/wikis/provider.rb +++ b/modules/wikis/app/models/wikis/provider.rb @@ -37,7 +37,7 @@ module Wikis scope :enabled, -> { where(enabled: true) } class << self - def registry_prefix = raise NotImplementedError, "SubclassResponsibility" + def registry_prefix = raise SubclassResponsibilityError end def resolve(registry_path) diff --git a/modules/xls_export/app/models/xls_export/concerns/spreadsheet_builder.rb b/modules/xls_export/app/models/xls_export/concerns/spreadsheet_builder.rb index e8cf3b55dbc..8588ebf9671 100644 --- a/modules/xls_export/app/models/xls_export/concerns/spreadsheet_builder.rb +++ b/modules/xls_export/app/models/xls_export/concerns/spreadsheet_builder.rb @@ -2,11 +2,11 @@ module XlsExport module Concerns module SpreadsheetBuilder def records - raise NotImplementedError + raise SubclassResponsibilityError end def spreadsheet_title - raise NotImplementedError + raise SubclassResponsibilityError end def export! diff --git a/spec/components/op_primer/email_updates_mode_selector_component_spec.rb b/spec/components/op_primer/email_updates_mode_selector_component_spec.rb index 1ff00f4a547..5f720845751 100644 --- a/spec/components/op_primer/email_updates_mode_selector_component_spec.rb +++ b/spec/components/op_primer/email_updates_mode_selector_component_spec.rb @@ -99,7 +99,7 @@ RSpec.describe OpPrimer::EmailUpdatesModeSelectorComponent, type: :component do let(:alt_text) { nil } it "throws an error" do - expect { render_inline(component) }.to raise_error(NotImplementedError) + expect { render_inline(component) }.to raise_error(ArgumentError) end end end diff --git a/spec/components/op_primer/status_button_component_spec.rb b/spec/components/op_primer/status_button_component_spec.rb index 8fdaf2dc606..404bd6fb17f 100644 --- a/spec/components/op_primer/status_button_component_spec.rb +++ b/spec/components/op_primer/status_button_component_spec.rb @@ -100,7 +100,7 @@ RSpec.describe OpPrimer::StatusButtonComponent, type: :component do let(:title) { nil } it "raises an exception" do - expect { render_inline(component) }.to raise_error(NotImplementedError) + expect { render_inline(component) }.to raise_error(SubclassResponsibilityError) end end end diff --git a/spec/models/project/phase_spec.rb b/spec/models/project/phase_spec.rb index ddec300062c..5cc9353c2d0 100644 --- a/spec/models/project/phase_spec.rb +++ b/spec/models/project/phase_spec.rb @@ -37,7 +37,7 @@ RSpec.describe Project::Phase do end it "can be instantiated" do - expect { described_class.new }.not_to raise_error(NotImplementedError) + expect { described_class.new }.not_to raise_error end it { is_expected.to have_readonly_attribute(:definition_id) } diff --git a/spec/support/pages/work_packages/abstract_work_package.rb b/spec/support/pages/work_packages/abstract_work_package.rb index 79545532d14..2c2f61ed076 100644 --- a/spec/support/pages/work_packages/abstract_work_package.rb +++ b/spec/support/pages/work_packages/abstract_work_package.rb @@ -93,7 +93,7 @@ module Pages end def container - raise NotImplementedError + raise SubclassResponsibilityError end def wait_for_activity_tab @@ -364,7 +364,7 @@ module Pages private def create_page(_args) - raise NotImplementedError + raise SubclassResponsibilityError end def ensure_no_conflicting_modifications diff --git a/spec/support/pages/work_packages/concerns/work_package_by_button_creator.rb b/spec/support/pages/work_packages/concerns/work_package_by_button_creator.rb index a272fe80e27..1bf5e3bdd63 100644 --- a/spec/support/pages/work_packages/concerns/work_package_by_button_creator.rb +++ b/spec/support/pages/work_packages/concerns/work_package_by_button_creator.rb @@ -75,7 +75,7 @@ module Pages end def create_page_class - raise NotImplementedError + raise SubclassResponsibilityError end end end