class BioInterchange::Registry
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.
Public Class Methods
is_supported?(reader_id, writer_id)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/biointerchange/registry.rb, line 49 def self.options_help(reader_id) @@reader_help_texts[reader_id].clone.freeze end
reader(reader_id)
click to toggle source
# File lib/biointerchange/registry.rb, line 33 def self.reader(reader_id) @@readers[reader_id] end
reader_descriptions()
click to toggle source
# File lib/biointerchange/registry.rb, line 41 def self.reader_descriptions @@reader_descriptions.clone.freeze end
reader_writer_pairs()
click to toggle source
# 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)
click to toggle source
# File lib/biointerchange/registry.rb, line 9 def self.register_reader(reader_id, reader_class, parameters, supports_batch_processing, descriptive_name, options_help) @@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] = options_help end
register_writer(writer_id, writer_class, compatible_reader_ids, supports_batch_processing, descriptive_name)
click to toggle source
# 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)
click to toggle source
# File lib/biointerchange/registry.rb, line 37 def self.writer(writer_id) @@writers[writer_id] end
writer_descriptions()
click to toggle source
# File lib/biointerchange/registry.rb, line 45 def self.writer_descriptions @@writer_descriptions.clone.freeze end