Module: Chemicalml::Schema::Registry

Defined in:
lib/chemicalml/schema/registry.rb

Overview

Lookup table for schema versions. Adding a new schema = adding one entry to Chemicalml::Schema::BUILTIN. No mutation of existing entries, no switch statements.

Constant Summary collapse

LOOKUP =
Schema::BUILTIN.each_with_object({}) do |(key, defn), h|
  h[key] = defn
  h[key.to_s] = defn
end.freeze

Class Method Summary collapse

Class Method Details

.defaultObject



25
26
27
# File 'lib/chemicalml/schema/registry.rb', line 25

def self.default
  lookup(:schema3)
end

.lookup(name) ⇒ Object

Raises:

  • (ArgumentError)


14
15
16
17
18
19
# File 'lib/chemicalml/schema/registry.rb', line 14

def self.lookup(name)
  entry = LOOKUP[name] || LOOKUP[name.to_sym] || LOOKUP[name.to_s]
  raise ArgumentError, "unknown schema version: #{name.inspect}" unless entry

  entry
end

.versionsObject



21
22
23
# File 'lib/chemicalml/schema/registry.rb', line 21

def self.versions
  Schema::BUILTIN.keys.freeze
end