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