Class: BioInterchange::Registry
- Inherits:
-
Object
- Object
- BioInterchange::Registry
- Defined in:
- lib/biointerchange/registry.rb
Overview
A registry of Reader and Writer subclasses that also keeps track which Reader/Writer combinations can be used together. The registry makes it possible to implement readers and writers without the need to modify other BioInterchange framework code.
Class Method Summary collapse
- .is_supported?(reader_id, writer_id) ⇒ Boolean
- .is_supporting_batch_processing?(reader_id, writer_id) ⇒ Boolean
- .options_help(reader_id) ⇒ Object
- .reader(reader_id) ⇒ Object
- .reader_descriptions ⇒ Object
- .reader_writer_pairs ⇒ Object
- .register_reader(reader_id, reader_class, parameters, supports_batch_processing, descriptive_name, options_help) ⇒ Object
- .register_writer(writer_id, writer_class, compatible_reader_ids, supports_batch_processing, descriptive_name) ⇒ Object
- .writer(writer_id) ⇒ Object
- .writer_descriptions ⇒ Object
Class Method Details
.is_supported?(reader_id, writer_id) ⇒ Boolean
25 26 27 |
# File 'lib/biointerchange/registry.rb', line 25 def self.is_supported?(reader_id, writer_id) @@compatible_reader_writer_pairs["#{reader_id} #{writer_id}"] == true end |
.is_supporting_batch_processing?(reader_id, writer_id) ⇒ Boolean
29 30 31 |
# File 'lib/biointerchange/registry.rb', line 29 def self.is_supporting_batch_processing?(reader_id, writer_id) @@reader_batch_processors[reader_id] and @@writer_batch_processors[writer_id] end |
.options_help(reader_id) ⇒ Object
49 50 51 |
# File 'lib/biointerchange/registry.rb', line 49 def self.(reader_id) @@reader_help_texts[reader_id].clone.freeze end |
.reader(reader_id) ⇒ Object
33 34 35 |
# File 'lib/biointerchange/registry.rb', line 33 def self.reader(reader_id) @@readers[reader_id] end |
.reader_descriptions ⇒ Object
41 42 43 |
# File 'lib/biointerchange/registry.rb', line 41 def self.reader_descriptions @@reader_descriptions.clone.freeze end |
.reader_writer_pairs ⇒ Object
53 54 55 |
# File 'lib/biointerchange/registry.rb', line 53 def self.reader_writer_pairs @@compatible_reader_writer_pairs.keys.sort.map { |reader_writer_pair| reader_writer_pair.split(/ /, 2) }.freeze end |
.register_reader(reader_id, reader_class, parameters, supports_batch_processing, descriptive_name, options_help) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/biointerchange/registry.rb', line 9 def self.register_reader(reader_id, reader_class, parameters, supports_batch_processing, descriptive_name, ) @@readers[reader_id] = [ reader_class ] + parameters @@reader_batch_processors[reader_id] = true if supports_batch_processing @@reader_descriptions[reader_id] = descriptive_name @@reader_help_texts[reader_id] = end |
.register_writer(writer_id, writer_class, compatible_reader_ids, supports_batch_processing, descriptive_name) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/biointerchange/registry.rb', line 16 def self.register_writer(writer_id, writer_class, compatible_reader_ids, supports_batch_processing, descriptive_name) @@writers[writer_id] = writer_class @@writer_batch_processors[writer_id] = true if supports_batch_processing @@writer_descriptions[writer_id] = descriptive_name compatible_reader_ids.each { |reader_id| @@compatible_reader_writer_pairs["#{reader_id} #{writer_id}"] = true } end |
.writer(writer_id) ⇒ Object
37 38 39 |
# File 'lib/biointerchange/registry.rb', line 37 def self.writer(writer_id) @@writers[writer_id] end |
.writer_descriptions ⇒ Object
45 46 47 |
# File 'lib/biointerchange/registry.rb', line 45 def self.writer_descriptions @@writer_descriptions.clone.freeze end |