Class: Xmi::EaRoot
- Inherits:
-
Object
- Object
- Xmi::EaRoot
- Defined in:
- lib/xmi/ea_root.rb,
lib/xmi/ea_root/xml_parsing.rb,
lib/xmi/ea_root/code_generation.rb,
lib/xmi/ea_root/namespace_handling.rb,
lib/xmi/ea_root/extension_lifecycle.rb
Class Method Summary collapse
- .extension_loaded?(extension_id) ⇒ Boolean
- .load_extension(xml_path) ⇒ Object
- .loaded_extensions ⇒ Object
- .unload_extension(extension_id) ⇒ Object
Class Method Details
.extension_loaded?(extension_id) ⇒ Boolean
43 44 45 46 |
# File 'lib/xmi/ea_root.rb', line 43 def extension_loaded?(extension_id) extension_id = extension_id.to_s.capitalize loaded_extensions.key?(extension_id) end |
.load_extension(xml_path) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/xmi/ea_root.rb', line 20 def load_extension(xml_path) extension_id = derive_module_name(xml_path) if loaded_extensions.key?(extension_id) raise ArgumentError, "Extension '#{extension_id}' is already loaded from " \ "'#{loaded_extensions[extension_id]}'. " \ "Call unload_extension('#{extension_id}') first if you want to reload it." end build_extension(xml_path) update_mappings(extension_id) loaded_extensions[extension_id] = xml_path end |
.loaded_extensions ⇒ Object
48 49 50 |
# File 'lib/xmi/ea_root.rb', line 48 def loaded_extensions @loaded_extensions ||= {} end |
.unload_extension(extension_id) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/xmi/ea_root.rb', line 35 def unload_extension(extension_id) extension_id = extension_id.to_s.capitalize remove_const(extension_id) if const_defined?(extension_id) loaded_extensions.delete(extension_id) end |