lutaml 0.9.22 → 0.9.23
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc862e1c9607a9696f2104ebcd0b3fc32fabe504c910612013be0e3e6a9a1e69
|
4
|
+
data.tar.gz: 41613d1428429a6e629406d1d755745146f0f34ca78af7373a967bec3338ebbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ea914bab620f52b038b5c0c7778eac2b257e3fafceb1b4ca5d75d198c3f53d763943f808a22d5d0561874d059fe1f1b4a819ec614c23a873f01685049b0362a
|
7
|
+
data.tar.gz: 4b0f439ac81fbdc1239833dd92288cc213ce7b78f53050acabf443b4e87bc4e795ca89cbc56cac8b783bb037de8fc3afa2f10aede1a03069328d4b9530dd91b8
|
data/lib/lutaml/version.rb
CHANGED
@@ -7,11 +7,9 @@ module Lutaml
|
|
7
7
|
@model = model
|
8
8
|
@guidance = guidance
|
9
9
|
|
10
|
-
if guidance
|
11
|
-
c["name"]
|
12
|
-
end.include?(@model[:name])
|
10
|
+
if guidance
|
13
11
|
@klass_guidance = guidance["classes"].find do |klass|
|
14
|
-
klass["name"] ==
|
12
|
+
klass["name"] == name || klass["name"] == absolute_path
|
15
13
|
end
|
16
14
|
end
|
17
15
|
end
|
@@ -24,6 +22,10 @@ module Lutaml
|
|
24
22
|
@model[:name]
|
25
23
|
end
|
26
24
|
|
25
|
+
def absolute_path
|
26
|
+
"#{@model[:absolute_path]}::#{name}"
|
27
|
+
end
|
28
|
+
|
27
29
|
def package
|
28
30
|
::Lutaml::XMI::PackageDrop.new(@model[:package], @guidance)
|
29
31
|
end
|
@@ -6,6 +6,7 @@ module Lutaml
|
|
6
6
|
def initialize(model, guidance = nil) # rubocop:disable Lint/MissingSuper
|
7
7
|
@model = model
|
8
8
|
@guidance = guidance
|
9
|
+
|
9
10
|
@children_packages ||= packages.map do |pkg|
|
10
11
|
[pkg, pkg.packages, pkg.packages.map(&:children_packages)]
|
11
12
|
end.flatten.uniq
|
@@ -19,6 +20,10 @@ module Lutaml
|
|
19
20
|
@model[:name]
|
20
21
|
end
|
21
22
|
|
23
|
+
def absolute_path
|
24
|
+
@model[:absolute_path]
|
25
|
+
end
|
26
|
+
|
22
27
|
def klasses
|
23
28
|
@model[:classes].map do |klass|
|
24
29
|
::Lutaml::XMI::KlassDrop.new(klass, @guidance)
|
@@ -70,17 +70,28 @@ module Lutaml
|
|
70
70
|
end
|
71
71
|
|
72
72
|
# @param xmi_model [Shale::Mapper]
|
73
|
+
# @param with_gen: [Boolean]
|
74
|
+
# @param with_absolute_path: [Boolean]
|
73
75
|
# return [Hash]
|
74
|
-
def serialize_xmi(xmi_model, with_gen: false)
|
76
|
+
def serialize_xmi(xmi_model, with_gen: false, with_absolute_path: false)
|
75
77
|
set_xmi_model(xmi_model)
|
76
|
-
serialize_to_hash(
|
78
|
+
serialize_to_hash(
|
79
|
+
xmi_model,
|
80
|
+
with_gen: with_gen,
|
81
|
+
with_absolute_path: with_absolute_path,
|
82
|
+
)
|
77
83
|
end
|
78
84
|
|
79
85
|
# @param xmi_model [Shale::Mapper]
|
86
|
+
# @param guidance_yaml [String]
|
80
87
|
# return [Liquid::Drop]
|
81
88
|
def serialize_xmi_to_liquid(xmi_model, guidance_yaml = nil)
|
82
89
|
set_xmi_model(xmi_model)
|
83
|
-
serialized_hash = serialize_xmi(
|
90
|
+
serialized_hash = serialize_xmi(
|
91
|
+
xmi_model,
|
92
|
+
with_gen: true,
|
93
|
+
with_absolute_path: true,
|
94
|
+
)
|
84
95
|
guidance = get_guidance(guidance_yaml)
|
85
96
|
::Lutaml::XMI::RootDrop.new(serialized_hash, guidance)
|
86
97
|
end
|
@@ -110,38 +121,67 @@ module Lutaml
|
|
110
121
|
private
|
111
122
|
|
112
123
|
# @param xmi_model [Shale::Mapper]
|
124
|
+
# @param with_gen: [Boolean]
|
125
|
+
# @param with_absolute_path: [Boolean]
|
113
126
|
# @return [Hash]
|
114
127
|
# @note xpath: //uml:Model[@xmi:type="uml:Model"]
|
115
|
-
def serialize_to_hash(xmi_model,
|
128
|
+
def serialize_to_hash(xmi_model,
|
129
|
+
with_gen: false, with_absolute_path: false)
|
116
130
|
model = xmi_model.model
|
117
131
|
{
|
118
132
|
name: model.name,
|
119
|
-
packages: serialize_model_packages(
|
133
|
+
packages: serialize_model_packages(
|
134
|
+
model,
|
135
|
+
with_gen: with_gen,
|
136
|
+
with_absolute_path: with_absolute_path,
|
137
|
+
),
|
120
138
|
}
|
121
139
|
end
|
122
140
|
|
123
141
|
# @param model [Shale::Mapper]
|
124
142
|
# @param with_gen: [Boolean]
|
143
|
+
# @param with_absolute_path: [Boolean]
|
144
|
+
# @param absolute_path: [String]
|
125
145
|
# @return [Array<Hash>]
|
126
146
|
# @note xpath ./packagedElement[@xmi:type="uml:Package"]
|
127
|
-
def serialize_model_packages(model,
|
147
|
+
def serialize_model_packages(model, # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
148
|
+
with_gen: false, with_absolute_path: false, absolute_path: "")
|
128
149
|
packages = model.packaged_element.select do |e|
|
129
150
|
e.type?("uml:Package")
|
130
151
|
end
|
131
152
|
|
153
|
+
if with_absolute_path
|
154
|
+
absolute_path = "#{absolute_path}::#{model.name}"
|
155
|
+
end
|
156
|
+
|
132
157
|
packages.map do |package|
|
133
|
-
{
|
158
|
+
h = {
|
134
159
|
xmi_id: package.id,
|
135
160
|
name: get_package_name(package),
|
136
|
-
classes: serialize_model_classes(
|
137
|
-
|
161
|
+
classes: serialize_model_classes(
|
162
|
+
package, model,
|
163
|
+
with_gen: with_gen,
|
164
|
+
with_absolute_path: with_absolute_path,
|
165
|
+
absolute_path: "#{absolute_path}::#{package.name}"
|
166
|
+
),
|
138
167
|
enums: serialize_model_enums(package),
|
139
168
|
data_types: serialize_model_data_types(package),
|
140
169
|
diagrams: serialize_model_diagrams(package.id),
|
141
|
-
packages: serialize_model_packages(
|
170
|
+
packages: serialize_model_packages(
|
171
|
+
package,
|
172
|
+
with_gen: with_gen,
|
173
|
+
with_absolute_path: with_absolute_path,
|
174
|
+
absolute_path: absolute_path,
|
175
|
+
),
|
142
176
|
definition: doc_node_attribute_value(package.id, "documentation"),
|
143
177
|
stereotype: doc_node_attribute_value(package.id, "stereotype"),
|
144
178
|
}
|
179
|
+
|
180
|
+
if with_absolute_path
|
181
|
+
h[:absolute_path] = "#{absolute_path}::#{package.name}"
|
182
|
+
end
|
183
|
+
|
184
|
+
h
|
145
185
|
end
|
146
186
|
end
|
147
187
|
|
@@ -162,28 +202,36 @@ module Lutaml
|
|
162
202
|
# @param package [Shale::Mapper]
|
163
203
|
# @param model [Shale::Mapper]
|
164
204
|
# @param with_gen: [Boolean]
|
205
|
+
# @param with_absolute_path: [Boolean]
|
165
206
|
# @return [Array<Hash>]
|
166
207
|
# @note xpath ./packagedElement[@xmi:type="uml:Class" or
|
167
208
|
# @xmi:type="uml:AssociationClass"]
|
168
|
-
def serialize_model_classes(package, model,
|
209
|
+
def serialize_model_classes(package, model, # rubocop:disable Metrics/MethodLength
|
210
|
+
with_gen: false, with_absolute_path: false, absolute_path: "")
|
169
211
|
klasses = package.packaged_element.select do |e|
|
170
212
|
e.type?("uml:Class") || e.type?("uml:AssociationClass") ||
|
171
213
|
e.type?("uml:Interface")
|
172
214
|
end
|
173
215
|
|
174
216
|
klasses.map do |klass|
|
175
|
-
build_klass_hash(
|
217
|
+
h = build_klass_hash(
|
176
218
|
klass, model,
|
177
219
|
with_gen: with_gen
|
178
220
|
)
|
221
|
+
|
222
|
+
h[:absolute_path] = absolute_path if with_absolute_path
|
223
|
+
|
224
|
+
h
|
179
225
|
end
|
180
226
|
end
|
181
227
|
|
182
228
|
# @param klass [Shale::Mapper]
|
183
229
|
# @param model [Shale::Mapper]
|
184
230
|
# @param with_gen: [Boolean]
|
231
|
+
# @param with_absolute_path: [Boolean]
|
185
232
|
# @return [Hash]
|
186
|
-
def build_klass_hash(klass, model,
|
233
|
+
def build_klass_hash(klass, model, # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
234
|
+
with_gen: false, with_absolute_path: false, absolute_path: "")
|
187
235
|
klass_hash = {
|
188
236
|
xmi_id: klass.id,
|
189
237
|
name: klass.name,
|
@@ -198,6 +246,8 @@ module Lutaml
|
|
198
246
|
stereotype: doc_node_attribute_value(klass.id, "stereotype"),
|
199
247
|
}
|
200
248
|
|
249
|
+
klass_hash[:absolute_path] = absolute_path if with_absolute_path
|
250
|
+
|
201
251
|
if with_gen && klass.type?("uml:Class")
|
202
252
|
klass_hash[:generalization] = serialize_generalization(klass)
|
203
253
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lutaml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-11-
|
11
|
+
date: 2024-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: expressir
|