Module: RequestClassDeprecator
- Defined in:
- lib/request_class_deprecator.rb
Overview
Use in migrations to deprecate request classes Usage: include RequestClassDeprecator deprecate_class('ClassName',options) options an otional hash { new_type: The new request type for affected requests. 'transfer' by default state_change: Hash of from_state => to_state applied to affected requests }
Defined Under Namespace
Classes: Request
Instance Method Summary collapse
-
#deprecate_class(request_class_name, options = {}) ⇒ Object
rubocop:todo Metrics/MethodLength rubocop:disable Rails/SkipsModelValidations.
- #transfer_request ⇒ Object
Instance Method Details
#deprecate_class(request_class_name, options = {}) ⇒ Object
rubocop:todo Metrics/MethodLength rubocop:disable Rails/SkipsModelValidations
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/request_class_deprecator.rb', line 22 do # NOTE: The following attribute is not required for Microarray Genotyping. # I think this might be broken and suggests that there should be separate classes for project: one for # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping # that doesn't. include ProjectManager::Associations include BudgetDivision::Associations custom_attribute(:project_cost_code, required: true) custom_attribute(:funding_comments) custom_attribute(:collaborators) custom_attribute(:external_funding_source) custom_attribute(:sequencing_budget_cost_centre) custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS) custom_attribute(:gt_committee_tracking_id) before_validation do |record| record.project_cost_code = nil if record.project_cost_code.blank? record.project_funding_model = nil if record.project_funding_model.blank? end end |
#transfer_request ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/request_class_deprecator.rb', line 16 do # NOTE: The following attribute is not required for Microarray Genotyping. # I think this might be broken and suggests that there should be separate classes for project: one for # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping # that doesn't. include ProjectManager::Associations include BudgetDivision::Associations custom_attribute(:project_cost_code, required: true) custom_attribute(:funding_comments) custom_attribute(:collaborators) custom_attribute(:external_funding_source) custom_attribute(:sequencing_budget_cost_centre) custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS) custom_attribute(:gt_committee_tracking_id) before_validation do |record| record.project_cost_code = nil if record.project_cost_code.blank? record.project_funding_model = nil if record.project_funding_model.blank? end end |