Module: HasPolyMetadata
- Extended by:
- ActiveSupport::Concern
- Included in:
- Batch
- Defined in:
- app/models/concerns/has_poly_metadata.rb
Instance Method Summary collapse
-
#get_poly_metadata(key) ⇒ String?
Returns the value of the PolyMetaDatum with the given key.
-
#set_poly_metadata(key, value) ⇒ void
Sets a PolyMetaDatum for the given key and value.
Instance Method Details
#get_poly_metadata(key) ⇒ String?
Returns the value of the PolyMetaDatum with the given key.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'app/models/concerns/has_poly_metadata.rb', line 35 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 |
#set_poly_metadata(key, value) ⇒ void
This method returns an undefined value.
Sets a PolyMetaDatum for the given key and value. If value is present, it will create or update the PolyMetaDatum with the given key and value, otherwise it will destroy the PolyMetaDatum with the given key if that exists. NB: this is because PolyMetaDatum validations prevent key duplication and blank values, although there are no such DB constraints.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/models/concerns/has_poly_metadata.rb', line 19 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 |