Module: Xmi
- Defined in:
- lib/xmi/namespace/dynamic.rb,
lib/xmi.rb,
lib/xmi.rb,
lib/xmi/add.rb,
lib/xmi/uml.rb,
lib/xmi/root.rb,
lib/xmi/type.rb,
lib/xmi/index.rb,
lib/xmi/sparx.rb,
lib/xmi/delete.rb,
lib/xmi/ea_root.rb,
lib/xmi/parsing.rb,
lib/xmi/replace.rb,
lib/xmi/version.rb,
lib/xmi/extension.rb,
lib/xmi/namespace.rb,
lib/xmi/sparx/gml.rb,
lib/xmi/v20110701.rb,
lib/xmi/v20131001.rb,
lib/xmi/v20161101.rb,
lib/xmi/versioned.rb,
lib/xmi/difference.rb,
lib/xmi/sparx/root.rb,
lib/xmi/sparx/ea_uml.rb,
lib/xmi/documentation.rb,
lib/xmi/namespace/omg.rb,
lib/xmi/sparx/diagram.rb,
lib/xmi/sparx/ea_stub.rb,
lib/xmi/sparx/element.rb,
lib/xmi/custom_profile.rb,
lib/xmi/sparx/mappings.rb,
lib/xmi/sparx/sys_ph_s.rb,
lib/xmi/namespace/sparx.rb,
lib/xmi/sparx/connector.rb,
lib/xmi/sparx/extension.rb,
lib/xmi/version_registry.rb,
lib/xmi/namespace/dynamic.rb,
lib/xmi/namespace_detector.rb,
lib/xmi/namespace_registry.rb,
lib/xmi/sparx/custom_profile.rb,
lib/xmi/sparx/primitive_type.rb,
lib/xmi/sparx/mappings/base_mapping.rb
Overview
Add convenience method to parent module
Defined Under Namespace
Modules: CustomProfile, Namespace, NamespaceRegistry, Parsing, Sparx, Type, Uml, V20110701, V20131001, V20161101, VersionRegistry, Versioned Classes: Add, Delete, Difference, Documentation, EaRoot, Error, Extension, Index, NamespaceDetector, Replace, Root
Constant Summary collapse
- VALUE_MAP =
Shared value_map for XMI elements Used to handle nil, empty, and omitted values consistently
{ from: { nil: :empty, empty: :empty, omitted: :empty }, to: { nil: :empty, empty: :empty, omitted: :empty }, }.freeze
- VERSION =
"0.5.3"
Class Method Summary collapse
-
.init_versioning! ⇒ void
Initialize all version registers.
-
.parse(xml_content) ⇒ Root
Parse XMI with automatic version detection.
-
.parse_with_version(xml_content, version) ⇒ Root
Parse XMI with a specific version register.
-
.versioning_initialized? ⇒ Boolean
Check if versioning has been initialized.
Class Method Details
.init_versioning! ⇒ void
This method returns an undefined value.
Initialize all version registers
Call this during gem initialization or before first use.
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/xmi.rb', line 71 def init_versioning! return if @versioning_initialized # Initialize versions in order (newest depends on older) V20110701.init_models! V20131001.init_models! V20161101.init_models! @versioning_initialized = true end |
.parse(xml_content) ⇒ Root
Parse XMI with automatic version detection
87 88 89 90 |
# File 'lib/xmi.rb', line 87 def parse(xml_content) init_versioning! VersionRegistry.parse_with_detected_version(xml_content, Root) end |
.parse_with_version(xml_content, version) ⇒ Root
Parse XMI with a specific version register
98 99 100 101 102 103 104 |
# File 'lib/xmi.rb', line 98 def parse_with_version(xml_content, version) init_versioning! register = VersionRegistry.register_for_version(version) raise ArgumentError, "Unknown version: #{version}" unless register Root.from_xml(xml_content, register: register) end |
.versioning_initialized? ⇒ Boolean
Check if versioning has been initialized
110 111 112 |
# File 'lib/xmi.rb', line 110 def versioning_initialized? @versioning_initialized || false end |