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/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, 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.0"
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.
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/xmi.rb', line 70 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
86 87 88 89 |
# File 'lib/xmi.rb', line 86 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
97 98 99 100 101 102 103 |
# File 'lib/xmi.rb', line 97 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
109 110 111 |
# File 'lib/xmi.rb', line 109 def versioning_initialized? @versioning_initialized || false end |