Class: PurposeConfig
- Inherits:
-
Object
- Object
- PurposeConfig
- Defined in:
- lib/purpose_config.rb
Overview
Purpose config is used to translate the configuration options in the purposes/*.yml files into the serialized versions in the config/settings/*.yml It also handles the registration of new purposes within Sequencescape.
Defined Under Namespace
Classes: Plate, Tube, TubeRack
Instance Attribute Summary collapse
-
#api ⇒ Object
readonly
Returns the value of attribute api.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#store ⇒ Object
readonly
Returns the value of attribute store.
Class Method Summary collapse
Instance Method Summary collapse
- #config ⇒ Object
-
#initialize(name, options, store, api, submission_templates, label_template_config) ⇒ PurposeConfig
constructor
A new instance of PurposeConfig.
- #uuid ⇒ Object
Constructor Details
#initialize(name, options, store, api, submission_templates, label_template_config) ⇒ PurposeConfig
Returns a new instance of PurposeConfig.
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/purpose_config.rb', line 35 def initialize(name, , store, api, submission_templates, label_template_config) @name = name @options = @submission = .delete(:submission) @store = store @api = api @submission_templates = submission_templates @label_templates = label_template_config.fetch('templates') @label_template_defaults = label_template_config.fetch('defaults_by_printer_type') @template_name = @options.delete(:label_template) || '' end |
Instance Attribute Details
#api ⇒ Object (readonly)
Returns the value of attribute api.
11 12 13 |
# File 'lib/purpose_config.rb', line 11 def api @api end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
11 12 13 |
# File 'lib/purpose_config.rb', line 11 def name @name end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
11 12 13 |
# File 'lib/purpose_config.rb', line 11 def @options end |
#store ⇒ Object (readonly)
Returns the value of attribute store.
11 12 13 |
# File 'lib/purpose_config.rb', line 11 def store @store end |
Class Method Details
.load(name, options, store, api, submission_templates, label_template_config) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/purpose_config.rb', line 17 def self.load(name, , store, api, submission_templates, label_template_config) case .fetch(:asset_type) when 'plate' PurposeConfig::Plate.new(name, , store, api, submission_templates, label_template_config) when 'tube' PurposeConfig::Tube.new(name, , store, api, submission_templates, label_template_config) when 'tube_rack' PurposeConfig::TubeRack.new(name, , store, api, submission_templates, label_template_config) else raise "Unknown purpose type #{.fetch(:asset_type)} for #{name}" end end |
Instance Method Details
#config ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/purpose_config.rb', line 47 def config { name: name, **, state_changer_class: default_state_changer, submission: , label_class: label_template[:label_class], printer_type: label_template[:printer_type], pmb_template: label_template[:pmb_template], sprint_template: label_template[:sprint_template] }.merge(@options) end |
#uuid ⇒ Object
60 61 62 |
# File 'lib/purpose_config.rb', line 60 def uuid store.fetch(name).uuid end |