Module: Unitsml::Configuration
- Defined in:
- lib/unitsml/configuration.rb
Constant Summary collapse
- CONTEXT_ID =
:unitsml_ruby
Class Method Summary collapse
- .build_context ⇒ Object
- .context(force_populate: false) ⇒ Object
- .context_id ⇒ Object
- .register_model(klass, id:) ⇒ Object
- .registered_models ⇒ Object
- .unitsdb_model_subclass?(klass) ⇒ Boolean
Class Method Details
.build_context ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/unitsml/configuration.rb', line 34 def build_context ::Unitsdb::Config.context # ensure unitsdb context exists substitutions = registered_models.each_value.map do |klass| { from_type: klass.superclass, to_type: klass } end ::Unitsdb::Config.populate_context( id: context_id, fallback_to: [::Unitsdb::Config.context_id], substitutions: substitutions, ) end |
.context(force_populate: false) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/unitsml/configuration.rb', line 15 def context(force_populate: false) existing = ::Unitsdb::Config.find_context(context_id) return existing if existing && !force_populate build_context end |
.context_id ⇒ Object
11 12 13 |
# File 'lib/unitsml/configuration.rb', line 11 def context_id CONTEXT_ID end |
.register_model(klass, id:) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/unitsml/configuration.rb', line 22 def register_model(klass, id:) unless unitsdb_model_subclass?(klass) raise Unitsml::Errors::InvalidModelError, klass end registered_models[id.to_sym] = klass end |
.registered_models ⇒ Object
30 31 32 |
# File 'lib/unitsml/configuration.rb', line 30 def registered_models @registered_models ||= {} end |
.unitsdb_model_subclass?(klass) ⇒ Boolean
48 49 50 51 52 53 54 55 |
# File 'lib/unitsml/configuration.rb', line 48 def unitsdb_model_subclass?(klass) return false unless klass.is_a?(Class) parent = klass.superclass return false if parent.nil? || parent == Object parent.name&.start_with?("Unitsdb::") end |