metanorma-plugin-lutaml 0.7.9 → 0.7.10
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: 4a8884a3a005d1987c9403af11f7dddb62657e28178881e7ef848383280edfcb
|
4
|
+
data.tar.gz: 210ca361b8facc4702196a1f2f734e79abe0b325e30db269c991884c0cbc2714
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab318c1c9a6bf060093600533ff59c6b293c70a90c3096ec5ab88100546e2ae2a18d0e52f8571bdf72d1da14df0fd6fdbfbc7a8cf3c9716ba34a2f154a4e5f64
|
7
|
+
data.tar.gz: 0e3acb93421b591442d0293c08c5fb9b2e8e8c1f4925eb5f9f0fbbb77997b5cbc80e8e30cce5dd4accc4b1fe40d91c2ebce09e7f17db901ad8afbb82b8d0cb37
|
data/README.adoc
CHANGED
@@ -315,7 +315,7 @@ lutaml_gml_dictionary::/path/to/dictionary.xml[template="/path/to/template.liqui
|
|
315
315
|
|
316
316
|
The command accepts the options listed below:
|
317
317
|
|
318
|
-
*
|
318
|
+
* `/path/to/dictionary.xml` specifies the path of xml file of the
|
319
319
|
GML Dictionary.
|
320
320
|
|
321
321
|
* `template="/path/to/template.liquid"` specifies the liquid template.
|
@@ -364,6 +364,36 @@ h| Help | Description
|
|
364
364
|
--
|
365
365
|
-----
|
366
366
|
|
367
|
+
=== Rendering a LutaML table of a class: `lutaml_klass_table`
|
368
|
+
|
369
|
+
This command allows to render a LutaML table of a class by using Liquid Drop.
|
370
|
+
|
371
|
+
The table will show:
|
372
|
+
|
373
|
+
* Class Name
|
374
|
+
* Class Definition
|
375
|
+
* Inherited Properties
|
376
|
+
* Self-defined Properties
|
377
|
+
* Properties Inherited from Association
|
378
|
+
* Properties Defined in Association
|
379
|
+
|
380
|
+
[source,adoc]
|
381
|
+
-----
|
382
|
+
lutaml_klass_table::/path/to/example.xmi[name="NameOfClass",tmpl_folder="/path/to/templates"]
|
383
|
+
-----
|
384
|
+
|
385
|
+
The command accepts the options listed below:
|
386
|
+
|
387
|
+
* `/path/to/example.xmi` specifies the path of xmi file.
|
388
|
+
|
389
|
+
* `name="NameOfClass"` specifies the name of the Class.
|
390
|
+
|
391
|
+
* `tmpl_folder="/path/to/templates"` specifies the folder path of the templates.
|
392
|
+
(Optional) By default, it will look for the templates `_klass_table.liquid`,
|
393
|
+
`_klass_row.liquid` and `_klass_assoc_row.liquid` defined in
|
394
|
+
`lib/metanorma/plugin/lutaml/templates`. These templates can be customized by
|
395
|
+
defining them in `/path/to/templates` and then set the `tmpl_folder` option.
|
396
|
+
|
367
397
|
=== Generating UML class and attributes: `lutaml_uml_class`
|
368
398
|
|
369
399
|
This command allows rendering a definition clause for a UML class.
|
@@ -796,6 +826,33 @@ and iterate through packages according to the order supplied in the file. All
|
|
796
826
|
packages that matches `skip` in the YAML config file will be skipped during
|
797
827
|
render.
|
798
828
|
|
829
|
+
=== Usage of `lutaml_ea_xmi` macro
|
830
|
+
|
831
|
+
This command is a replacement for `lutaml_uml_datamodel_description` to perform
|
832
|
+
the same functionalities of `lutaml_uml_datamodel_description`, which is to
|
833
|
+
render data model packages and its dependent objects for supplied XMI file, by
|
834
|
+
using Liquid Drop. The performance of `lutaml_ea_xmi` can be improved by
|
835
|
+
10~20 times. (Tested with a 10.6MB XMI file with 120000+ lines)
|
836
|
+
|
837
|
+
To use this macro, you only need to replace `lutaml_uml_datamodel_description`
|
838
|
+
by `lutaml_ea_xmi`.
|
839
|
+
|
840
|
+
Replace:
|
841
|
+
|
842
|
+
[source,adoc]
|
843
|
+
-----
|
844
|
+
[lutaml_uml_datamodel_description, path/to/example.xmi]
|
845
|
+
...
|
846
|
+
-----
|
847
|
+
|
848
|
+
By:
|
849
|
+
|
850
|
+
[source,adoc]
|
851
|
+
-----
|
852
|
+
[lutaml_ea_xmi, path/to/example.xmi]
|
853
|
+
...
|
854
|
+
-----
|
855
|
+
|
799
856
|
== Documentation
|
800
857
|
|
801
858
|
Please refer to https://www.metanorma.org.
|
@@ -1,23 +1,24 @@
|
|
1
1
|
[cols="1a,1a,2a"]
|
2
2
|
|===
|
3
|
-
|
|
3
|
+
| Definition of Type
|
4
4
|
2+| {{ root.definition }}
|
5
5
|
|
6
|
-
h|
|
7
|
-
h|
|
6
|
+
h| Upper Type 2+| {{ root.general.upper_klass }}:{{ root.general.name }}
|
7
|
+
h| Stereotype 2+| << {{ root.stereotype }} >>
|
8
8
|
|
9
|
-
3+h|
|
10
|
-
h|
|
9
|
+
3+h| Inherited Properties
|
10
|
+
h| Property Name h| Property Type and Multiplicity h| Definition
|
11
11
|
{{ content.inherited_props }}
|
12
12
|
|
13
|
-
3+h|
|
13
|
+
3+h| Self-defined Properties
|
14
|
+
h| Property Name h| Property Type and Multiplicity h| Definition
|
14
15
|
{{ content.owned_props }}
|
15
16
|
|
16
|
-
3+h|
|
17
|
-
h|
|
17
|
+
3+h| Properties Inherited from Association
|
18
|
+
h| Property Name h| Property Type and Multiplicity h| Definition
|
18
19
|
{{ content.inherited_assoc_props }}
|
19
20
|
|
20
|
-
3+h|
|
21
|
-
h|
|
21
|
+
3+h| Properties Defined in Association
|
22
|
+
h| Property Name h| Property Type and Multiplicity h| Definition
|
22
23
|
{{ content.assoc_props }}
|
23
24
|
|===
|
@@ -11,23 +11,23 @@ module Metanorma
|
|
11
11
|
class LutamlKlassTableBlockMacro < ::Asciidoctor::Extensions::BlockMacroProcessor
|
12
12
|
DEFAULT_TEMPLATE_PATH = File.join(
|
13
13
|
Gem::Specification.find_by_name("metanorma-plugin-lutaml").gem_dir,
|
14
|
-
"lib
|
14
|
+
"lib", "metanorma", "plugin", "lutaml", "liquid_templates"
|
15
15
|
)
|
16
|
-
DEFAULT_TABLE_TEMPLATE = DEFAULT_TEMPLATE_PATH
|
17
|
-
.gsub("<NAME>", "_klass_table")
|
18
|
-
DEFAULT_ROW_TEMPLATE = DEFAULT_TEMPLATE_PATH
|
19
|
-
.gsub("<NAME>", "_klass_row")
|
20
|
-
DEFAULT_ASSOC_ROW_TEMPLATE = DEFAULT_TEMPLATE_PATH
|
21
|
-
.gsub("<NAME>", "_klass_assoc_row")
|
22
16
|
|
23
17
|
use_dsl
|
24
18
|
named :lutaml_klass_table
|
25
19
|
|
26
20
|
def process(parent, target, attrs)
|
27
|
-
|
21
|
+
xmi_path = Utils.relative_file_path(parent.document, target)
|
22
|
+
|
23
|
+
if attrs["tmpl_folder"]
|
24
|
+
attrs["tmpl_folder"] = Utils.relative_file_path(
|
25
|
+
parent.document, attrs["tmpl_folder"]
|
26
|
+
)
|
27
|
+
end
|
28
28
|
|
29
29
|
gen = ::Lutaml::XMI::Parsers::XML.serialize_generalization_by_name(
|
30
|
-
|
30
|
+
xmi_path, attrs["name"]
|
31
31
|
)
|
32
32
|
|
33
33
|
render(gen, parent, attrs)
|
@@ -51,16 +51,6 @@ module Metanorma
|
|
51
51
|
gen, parent, attrs
|
52
52
|
)
|
53
53
|
|
54
|
-
# content[:inherited_props] += render_named_inherited_props(
|
55
|
-
# gen, parent, attrs, "gml"
|
56
|
-
# )
|
57
|
-
# content[:inherited_props] += render_named_inherited_props(
|
58
|
-
# gen, parent, attrs, "core"
|
59
|
-
# )
|
60
|
-
# content[:inherited_assoc_props] += render_named_inherited_props(
|
61
|
-
# gen, parent, attrs, "gen"
|
62
|
-
# )
|
63
|
-
|
64
54
|
rendered_table = render_table(gen, parent, attrs, content)
|
65
55
|
|
66
56
|
block = create_open_block(parent, "", attrs)
|
@@ -69,7 +59,7 @@ module Metanorma
|
|
69
59
|
|
70
60
|
def render_table(gen, parent, attrs, content)
|
71
61
|
table_tmpl = get_template(
|
72
|
-
parent.document, attrs
|
62
|
+
parent.document, attrs, :table
|
73
63
|
)
|
74
64
|
|
75
65
|
table_tmpl.assigns["root"] = KlassTableDrop.new(gen)
|
@@ -81,14 +71,14 @@ module Metanorma
|
|
81
71
|
|
82
72
|
def render_general_rows(general_item, parent, attrs)
|
83
73
|
row_tmpl = get_template(
|
84
|
-
parent.document, attrs
|
74
|
+
parent.document, attrs, :row
|
85
75
|
)
|
86
76
|
render_rows(general_item, row_tmpl)
|
87
77
|
end
|
88
78
|
|
89
79
|
def render_assoc_rows(general_item, parent, attrs)
|
90
80
|
row_tmpl = get_template(
|
91
|
-
parent.document, attrs
|
81
|
+
parent.document, attrs, :assoc_row
|
92
82
|
)
|
93
83
|
render_rows(general_item, row_tmpl)
|
94
84
|
end
|
@@ -127,28 +117,6 @@ module Metanorma
|
|
127
117
|
render_assoc_rows(gen, parent, attrs)
|
128
118
|
end
|
129
119
|
|
130
|
-
def render_gml_inherited_props(gen, parent, attrs)
|
131
|
-
render_named_inherited_props(gen, parent, attrs, "gml")
|
132
|
-
end
|
133
|
-
|
134
|
-
def render_core_inherited_props(gen, parent, attrs)
|
135
|
-
render_named_inherited_props(gen, parent, attrs, "core")
|
136
|
-
end
|
137
|
-
|
138
|
-
def render_gen_inherited_props(gen, parent, attrs)
|
139
|
-
render_named_inherited_props(gen, parent, attrs, "gen")
|
140
|
-
end
|
141
|
-
|
142
|
-
def render_named_inherited_props(gen, parent, attrs, name)
|
143
|
-
attr_key = "#{name}_attributes".to_sym
|
144
|
-
general_item = {}
|
145
|
-
general_item[:general_attributes] = gen[attr_key]
|
146
|
-
general_item[:general_upper_klass] = gen[attr_key].first[:upper_klass]
|
147
|
-
general_item[:general_name] = name
|
148
|
-
|
149
|
-
render_general_rows(general_item, parent, attrs)
|
150
|
-
end
|
151
|
-
|
152
120
|
def render_inherited_props(gen, parent, attrs)
|
153
121
|
render_inherited_rows(gen, parent, attrs, assoc: false)
|
154
122
|
end
|
@@ -173,10 +141,13 @@ module Metanorma
|
|
173
141
|
rendered_rows
|
174
142
|
end
|
175
143
|
|
176
|
-
def get_template(document,
|
177
|
-
|
178
|
-
|
144
|
+
def get_template(document, attrs, tmpl_type)
|
145
|
+
tmpl_folder = DEFAULT_TEMPLATE_PATH
|
146
|
+
if attrs["tmpl_folder"]
|
147
|
+
tmpl_folder = attrs["tmpl_folder"]
|
179
148
|
end
|
149
|
+
template_path = get_default_template_path(tmpl_type, tmpl_folder,
|
150
|
+
attrs)
|
180
151
|
|
181
152
|
rel_tmpl_path = Utils.relative_file_path(
|
182
153
|
document, template_path
|
@@ -185,15 +156,17 @@ module Metanorma
|
|
185
156
|
::Liquid::Template.parse(File.read(rel_tmpl_path))
|
186
157
|
end
|
187
158
|
|
188
|
-
def get_default_template_path(tmpl_type)
|
189
|
-
case tmpl_type
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
159
|
+
def get_default_template_path(tmpl_type, tmpl_folder, attrs)
|
160
|
+
liquid_template = case tmpl_type
|
161
|
+
when :row
|
162
|
+
attrs["row_tmpl_name"] || "_klass_row"
|
163
|
+
when :assoc_row
|
164
|
+
attrs["assoc_row_tmpl_name"] || "_klass_assoc_row"
|
165
|
+
else
|
166
|
+
attrs["table_tmpl_name"] || "_klass_table"
|
167
|
+
end
|
168
|
+
|
169
|
+
File.join(tmpl_folder, "#{liquid_template}.liquid")
|
197
170
|
end
|
198
171
|
end
|
199
172
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-plugin-lutaml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.10
|
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-09-
|
11
|
+
date: 2024-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|