lutaml-xmi 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/lutaml/xmi/parsers/xml.rb +20 -9
- data/lib/lutaml/xmi/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f4a8a80a350203d62586a60fb8b4c4021251953dc7cf6840b79433b164149e4
|
4
|
+
data.tar.gz: aac4b122d79b8d83dac436363dbd062ff5286b330c2bd106db5f1ab952e0f06b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6dcb83373821cf4d5859180ecebe65e24c75e903f0d44a8b97d87c67ded4ef0eb51894a6cc43dc64d2b3d6bbd0a6abcadee207d8d5c2457e076f4189e4f39f52
|
7
|
+
data.tar.gz: 74fa008e8ce12702db9a66afc9ce1aaf7e34b05fea9def10e09898fc750ea99b119218765c55bcfd0ec75a78b09aea94602837478247ec32d9f1842e32fa3f67
|
@@ -91,13 +91,15 @@ module Lutaml
|
|
91
91
|
xmi_id = klass["xmi:id"]
|
92
92
|
main_model.xpath(%(//element[@xmi:idref="#{xmi_id}"]/links/*)).map do |link|
|
93
93
|
member_end, member_end_type, member_end_cardinality, member_end_attribute_name = serialize_member_type(xmi_id, link)
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
94
|
+
if member_end && member_end != klass["name"]
|
95
|
+
{
|
96
|
+
xmi_id: link["xmi:id"],
|
97
|
+
member_end: member_end,
|
98
|
+
member_end_type: member_end_type,
|
99
|
+
member_end_cardinality: member_end_cardinality,
|
100
|
+
member_end_attribute_name: member_end_attribute_name,
|
101
|
+
}
|
102
|
+
end
|
101
103
|
end
|
102
104
|
end
|
103
105
|
|
@@ -111,6 +113,7 @@ module Lutaml
|
|
111
113
|
end
|
112
114
|
|
113
115
|
def serialize_member_type(owned_xmi_id, link)
|
116
|
+
return if link.name == 'NoteLink'
|
114
117
|
return generalization_association(owned_xmi_id, link) if link.name == "Generalization"
|
115
118
|
|
116
119
|
xmi_id = link.attributes["start"].value
|
@@ -135,11 +138,12 @@ module Lutaml
|
|
135
138
|
if link.attributes["start"].value == owned_xmi_id
|
136
139
|
xmi_id = link.attributes["end"].value
|
137
140
|
member_end_type = "inheritance"
|
141
|
+
member_end = lookup_entity_name(xmi_id) || connector_target_name(xmi_id)
|
138
142
|
else
|
139
143
|
xmi_id = link.attributes["start"].value
|
140
144
|
member_end_type = "generalization"
|
145
|
+
member_end = lookup_entity_name(xmi_id) || connector_source_name(xmi_id)
|
141
146
|
end
|
142
|
-
member_end = lookup_entity_name(xmi_id)
|
143
147
|
|
144
148
|
member_end_node = main_model.xpath(%(//ownedAttribute[@association]/type[@xmi:idref="#{xmi_id}"])).first
|
145
149
|
if member_end_node
|
@@ -203,7 +207,7 @@ module Lutaml
|
|
203
207
|
end
|
204
208
|
|
205
209
|
def lookup_entity_name(xmi_id)
|
206
|
-
xmi_cache[xmi_id] ||= model_node_name_by_xmi_id(xmi_id)
|
210
|
+
xmi_cache[xmi_id] ||= model_node_name_by_xmi_id(xmi_id)
|
207
211
|
xmi_cache[xmi_id]
|
208
212
|
end
|
209
213
|
|
@@ -214,6 +218,13 @@ module Lutaml
|
|
214
218
|
node.attributes["name"]&.value
|
215
219
|
end
|
216
220
|
|
221
|
+
def connector_target_name(xmi_id)
|
222
|
+
node = main_model.xpath(%(//target[@xmi:idref="#{xmi_id}"]/model)).first
|
223
|
+
return unless node
|
224
|
+
|
225
|
+
node.attributes["name"]&.value
|
226
|
+
end
|
227
|
+
|
217
228
|
def model_node_name_by_xmi_id(xmi_id)
|
218
229
|
node = main_model.xpath(%(//*[@xmi:id="#{xmi_id}"])).first
|
219
230
|
return unless node
|
data/lib/lutaml/xmi/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lutaml-xmi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|