metanorma-plugin-lutaml 0.1.0 → 0.2.0
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/.github/workflows/rake.yml +81 -0
- data/.gitignore +1 -0
- data/Gemfile +1 -0
- data/README.adoc +79 -1
- data/lib/metanorma-plugin-lutaml.rb +2 -0
- data/lib/metanorma/plugin/lutaml/lutaml_datamodel_attributes_table_preprocessor.rb +104 -0
- data/lib/metanorma/plugin/lutaml/lutaml_diagram_block.rb +86 -0
- data/lib/metanorma/plugin/lutaml/lutaml_preprocessor.rb +4 -30
- data/lib/metanorma/plugin/lutaml/utils.rb +37 -0
- data/lib/metanorma/plugin/lutaml/version.rb +1 -1
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf1f2a866187d3c88f1948cfee8cac317fd17aa01a6ed3896470689b5dc644d1
|
4
|
+
data.tar.gz: 47752b4c4b8cd0fc9f086d83a00dbad165940650ef14353c860b3cbe8c22dd41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2c871c4788077d0e853813452119c8639fc8d539103a312be1781f17d0e22968b29d28ac62f78f887fc4714123ff598f42b591c8747b14c48ae5c034f356c6a
|
7
|
+
data.tar.gz: f1545cb37a21c5ec2f00078b9e556bcba25197409a4e42902734cdc378d6b3e1a1822abf4d13f0e92d55c1ad22c58b87e60a90b3873bf088987dc47233404328
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
3
|
+
name: rake
|
4
|
+
|
5
|
+
on:
|
6
|
+
push:
|
7
|
+
branches: [ main ]
|
8
|
+
tags: [ v* ]
|
9
|
+
pull_request:
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
rake:
|
13
|
+
name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
|
14
|
+
runs-on: ${{ matrix.os }}
|
15
|
+
continue-on-error: ${{ matrix.experimental }}
|
16
|
+
strategy:
|
17
|
+
fail-fast: false
|
18
|
+
matrix:
|
19
|
+
ruby: [ '2.6', '2.5', '2.4' ]
|
20
|
+
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
21
|
+
experimental: [ false ]
|
22
|
+
include:
|
23
|
+
- ruby: '2.7'
|
24
|
+
os: 'ubuntu-latest'
|
25
|
+
experimental: true
|
26
|
+
- ruby: '2.7'
|
27
|
+
os: 'windows-latest'
|
28
|
+
experimental: true
|
29
|
+
- ruby: '2.7'
|
30
|
+
os: 'macos-latest'
|
31
|
+
experimental: true
|
32
|
+
steps:
|
33
|
+
- uses: actions/checkout@master
|
34
|
+
|
35
|
+
- name: Use Ruby
|
36
|
+
uses: ruby/setup-ruby@v1
|
37
|
+
with:
|
38
|
+
ruby-version: ${{ matrix.ruby }}
|
39
|
+
bundler-cache: true
|
40
|
+
|
41
|
+
- name: Update gems
|
42
|
+
run: bundle install --jobs 4 --retry 3
|
43
|
+
|
44
|
+
- name: Install Grpahviz Ubuntu
|
45
|
+
if: matrix.os == 'ubuntu-latest'
|
46
|
+
run: sudo apt-get install graphviz
|
47
|
+
|
48
|
+
- name: Install Grpahviz macOS
|
49
|
+
if: matrix.os == 'macos-latest'
|
50
|
+
run: brew install graphviz
|
51
|
+
|
52
|
+
- name: Install Grpahviz Windows
|
53
|
+
if: matrix.os == 'windows-latest'
|
54
|
+
uses: nick-invision/retry@v1
|
55
|
+
with:
|
56
|
+
polling_interval_seconds: 5
|
57
|
+
timeout_minutes: 5
|
58
|
+
max_attempts: 3
|
59
|
+
command: choco install --no-progress graphviz --version 2.38.0.20190211
|
60
|
+
|
61
|
+
- name: Check dot command
|
62
|
+
if: matrix.os == 'windows-latest'
|
63
|
+
run: |
|
64
|
+
dot -?
|
65
|
+
|
66
|
+
- name: Run specs
|
67
|
+
run: bundle exec rake
|
68
|
+
|
69
|
+
notify:
|
70
|
+
name: Trigger notify workflow
|
71
|
+
needs: rake
|
72
|
+
runs-on: ubuntu-latest
|
73
|
+
steps:
|
74
|
+
- name: Trigger notify workflow
|
75
|
+
uses: Sibz/github-status-action@v1
|
76
|
+
with:
|
77
|
+
authToken: ${{ secrets.GITHUB_TOKEN }}
|
78
|
+
context: 'tests-passed-successfully'
|
79
|
+
description: 'Tests passed successfully'
|
80
|
+
state: 'success'
|
81
|
+
sha: ${{ github.event.pull_request.head.sha || github.sha }}
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.adoc
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
= metanorma-plugin-lutaml
|
2
2
|
|
3
|
+
image:https://github.com/metanorma/metanorma-plugin-lutaml/workflows/rake/badge.svg["Build Status", link="https://github.com/metanorma/metanorma-plugin-lutaml/actions?workflow=rake"]
|
4
|
+
|
3
5
|
== Functionality
|
4
6
|
|
5
7
|
Metanorma plugin that allows you to access lutaml objects from a Metanorma document
|
@@ -11,7 +13,7 @@ Metanorma plugin that allows you to access lutaml objects from a Metanorma docum
|
|
11
13
|
$ gem install metanorma-plugin-lutaml
|
12
14
|
----
|
13
15
|
|
14
|
-
=== Usage
|
16
|
+
=== Usage, `lutaml` macro
|
15
17
|
|
16
18
|
Given `example.exp` file with the content:
|
17
19
|
|
@@ -71,6 +73,82 @@ Will produce this output:
|
|
71
73
|
=== my_type5
|
72
74
|
-----
|
73
75
|
|
76
|
+
This macro also supports `.lutaml` files.
|
77
|
+
|
78
|
+
=== Usage, `lutaml_datamodel_attributes_table` macro
|
79
|
+
|
80
|
+
This macro allows to quickly render datamodel attributes/values tables. Given `example.lutaml` file with the content:
|
81
|
+
|
82
|
+
[source,java]
|
83
|
+
----
|
84
|
+
diagram MyView {
|
85
|
+
title "my diagram"
|
86
|
+
|
87
|
+
enum AddressClassProfile {
|
88
|
+
imlicistAttributeProfile: CharacterString [0..1] {
|
89
|
+
definition
|
90
|
+
this is multiline with `ascidoc`
|
91
|
+
end definition
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
class AttributeProfile {
|
96
|
+
+addressClassProfile: CharacterString [0..1]
|
97
|
+
imlicistAttributeProfile: CharacterString [0..1] {
|
98
|
+
definition this is attribute definition
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|
102
|
+
----
|
103
|
+
|
104
|
+
And the `lutaml_datamodel_attributes_table` macro:
|
105
|
+
|
106
|
+
[source,adoc]
|
107
|
+
-----
|
108
|
+
[lutaml_datamodel_attributes_table, example.lutaml, AttributeProfile]
|
109
|
+
-----
|
110
|
+
|
111
|
+
Will produce this output:
|
112
|
+
|
113
|
+
[source,adoc]
|
114
|
+
-----
|
115
|
+
=== AttributeProfile
|
116
|
+
|
117
|
+
|
118
|
+
.AttributeProfile attributes
|
119
|
+
|===
|
120
|
+
|Name |Definition |Mandatory/ Optional/ Conditional |Max Occur |Data Type
|
121
|
+
|
122
|
+
|addressClassProfile |TODO: enum 's definition |M |1 | `CharacterString`
|
123
|
+
|
124
|
+
|imlicistAttributeProfile |this is attribute definition with multiply lines |M |1 | `CharacterString`
|
125
|
+
|
126
|
+
|===
|
127
|
+
-----
|
128
|
+
|
129
|
+
In case of "enumeration"(AddressClassProfile) entity:
|
130
|
+
|
131
|
+
[source,adoc]
|
132
|
+
-----
|
133
|
+
[lutaml_datamodel_attributes_table, example.lutaml, AddressClassProfile]
|
134
|
+
-----
|
135
|
+
|
136
|
+
Will produce this output:
|
137
|
+
|
138
|
+
[source,adoc]
|
139
|
+
-----
|
140
|
+
=== AddressClassProfile
|
141
|
+
|
142
|
+
|
143
|
+
.AddressClassProfile values
|
144
|
+
|===
|
145
|
+
|Name |Definition
|
146
|
+
|
147
|
+
|imlicistAttributeProfile |this is multiline with `ascidoc`
|
148
|
+
|
149
|
+
|===
|
150
|
+
-----
|
151
|
+
|
74
152
|
== Documentation
|
75
153
|
|
76
154
|
See https://www.metanorma.com.
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require "metanorma/plugin/lutaml/version"
|
2
2
|
require "metanorma/plugin/lutaml/lutaml_preprocessor"
|
3
|
+
require "metanorma/plugin/lutaml/lutaml_datamodel_attributes_table_preprocessor"
|
4
|
+
require "metanorma/plugin/lutaml/lutaml_diagram_block"
|
3
5
|
|
4
6
|
module Metanorma
|
5
7
|
module Plugin
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "liquid"
|
4
|
+
require "asciidoctor"
|
5
|
+
require "asciidoctor/reader"
|
6
|
+
require "lutaml"
|
7
|
+
require "lutaml/uml"
|
8
|
+
require "metanorma/plugin/lutaml/utils"
|
9
|
+
|
10
|
+
module Metanorma
|
11
|
+
module Plugin
|
12
|
+
module Lutaml
|
13
|
+
# Macro for quick rendering of datamodel attributes/values table
|
14
|
+
# @example [lutaml_datamodel_attributes_table,path/to/lutaml,EntityName]
|
15
|
+
class LutamlDatamodelAttributesTablePreprocessor < Asciidoctor::Extensions::Preprocessor
|
16
|
+
MARCO_REGEXP =
|
17
|
+
/\[lutaml_datamodel_attributes_table,([^,]+),?(.+)?,([^,]+),?(.+)?\]/
|
18
|
+
# search document for block `datamodel_attributes_table`
|
19
|
+
# read include derectives that goes after that in block and transform
|
20
|
+
# into yaml2text blocks
|
21
|
+
def process(document, reader)
|
22
|
+
input_lines = reader.readlines.to_enum
|
23
|
+
Asciidoctor::Reader.new(processed_lines(document, input_lines))
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def lutaml_document_from_file(document, file_path)
|
29
|
+
::Lutaml::Parser
|
30
|
+
.parse(File.new(Utils.relative_file_path(document, file_path),
|
31
|
+
encoding: "UTF-8"))
|
32
|
+
rescue => e
|
33
|
+
require 'byebug'
|
34
|
+
byebug
|
35
|
+
i =10
|
36
|
+
end
|
37
|
+
|
38
|
+
def processed_lines(document, input_lines)
|
39
|
+
input_lines.each_with_object([]) do |line, result|
|
40
|
+
if match = line.match(MARCO_REGEXP)
|
41
|
+
lutaml_path = match[1]
|
42
|
+
entity_name = match[3]
|
43
|
+
result.push(*parse_marco(lutaml_path, entity_name, document))
|
44
|
+
else
|
45
|
+
result.push(line)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def parse_marco(lutaml_path, entity_name, document)
|
51
|
+
lutaml_document = lutaml_document_from_file(document, lutaml_path)
|
52
|
+
.serialized_document
|
53
|
+
entities = [lutaml_document['classes'], lutaml_document['enums']]
|
54
|
+
.compact
|
55
|
+
.flatten
|
56
|
+
entity_definition = entities.find do |klass|
|
57
|
+
klass['name'] == entity_name.strip
|
58
|
+
end
|
59
|
+
model_representation(entity_definition, document)
|
60
|
+
end
|
61
|
+
|
62
|
+
def model_representation(entity_definition, document)
|
63
|
+
render_result, errors = Utils.render_liquid_string(
|
64
|
+
template_string: table_template,
|
65
|
+
context_items: entity_definition,
|
66
|
+
context_name: 'definition'
|
67
|
+
)
|
68
|
+
Utils.notify_render_errors(document, errors)
|
69
|
+
render_result.split("\n")
|
70
|
+
end
|
71
|
+
|
72
|
+
def table_template
|
73
|
+
<<~TEMPLATE
|
74
|
+
=== {{ definition.name }}
|
75
|
+
{{ definition.definition }}
|
76
|
+
|
77
|
+
{% if definition.attributes %}
|
78
|
+
{% if definition.keyword == 'enumeration' %}
|
79
|
+
.{{ definition.name }} values
|
80
|
+
|===
|
81
|
+
|Name |Definition
|
82
|
+
|
83
|
+
{% for item in definition.attributes %}
|
84
|
+
|{{ item.name }} |{{ item.definition }}
|
85
|
+
{% endfor %}
|
86
|
+
|===
|
87
|
+
{% else %}
|
88
|
+
.{{ definition.name }} attributes
|
89
|
+
|===
|
90
|
+
|Name |Definition |Mandatory/ Optional/ Conditional |Max Occur |Data Type
|
91
|
+
|
92
|
+
{% for item in definition.attributes %}
|
93
|
+
|{{ item.name }} |{% if item.definition %}{{ item.definition }}{% else %}TODO: enum {{ key }}'s definition{% endif %} |{% if item.cardinality.min == 0 %}O{% else %}M{% endif %} |{% if item.cardinality.max == "*" %}N{% else %}1{% endif %} |{% if item.origin %}<<{{ item.origin }}>>{% endif %} `{{ item.type }}`
|
94
|
+
{% endfor %}
|
95
|
+
|===
|
96
|
+
{% endif %}
|
97
|
+
{% endif %}
|
98
|
+
|
99
|
+
TEMPLATE
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "liquid"
|
4
|
+
require "asciidoctor"
|
5
|
+
require "asciidoctor/reader"
|
6
|
+
require "lutaml"
|
7
|
+
require "lutaml/uml"
|
8
|
+
require "metanorma/plugin/lutaml/utils"
|
9
|
+
|
10
|
+
module Metanorma
|
11
|
+
module Plugin
|
12
|
+
module Lutaml
|
13
|
+
class LutamlDiagramBlock < Asciidoctor::Extensions::BlockProcessor
|
14
|
+
use_dsl
|
15
|
+
named :lutaml_diagram
|
16
|
+
on_context :literal
|
17
|
+
parse_content_as :raw
|
18
|
+
|
19
|
+
def abort(parent, reader, attrs, msg)
|
20
|
+
warn(msg)
|
21
|
+
attrs["language"] = "lutaml"
|
22
|
+
create_listing_block(
|
23
|
+
parent,
|
24
|
+
reader.source,
|
25
|
+
attrs.reject { |k, v| k == 1 })
|
26
|
+
end
|
27
|
+
|
28
|
+
def process(parent, reader, attrs)
|
29
|
+
uml_document = ::Lutaml::Uml::Parsers::Dsl.parse(lutaml_temp(reader))
|
30
|
+
filename = generate_file(parent, reader, uml_document)
|
31
|
+
through_attrs = generate_attrs(attrs)
|
32
|
+
through_attrs["target"] = filename
|
33
|
+
through_attrs["title"] = uml_document.caption
|
34
|
+
create_image_block(parent, through_attrs)
|
35
|
+
rescue => e
|
36
|
+
abort(parent, reader, attrs, e.message)
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def lutaml_temp(reader)
|
42
|
+
temp_file = Tempfile.new(['lutaml', '.lutaml'])
|
43
|
+
temp_file.puts(reader.read)
|
44
|
+
temp_file.rewind
|
45
|
+
temp_file
|
46
|
+
end
|
47
|
+
|
48
|
+
# if no :imagesdir: leave image file in lutaml
|
49
|
+
def generate_file(parent, reader, uml_document)
|
50
|
+
formatter = ::Lutaml::Uml::Formatter::Graphviz.new
|
51
|
+
formatter.type = :png
|
52
|
+
|
53
|
+
imagesdir = if parent.document.attr('imagesdir')
|
54
|
+
File.join(parent.document.attr('imagesdir'), 'lutaml')
|
55
|
+
else
|
56
|
+
'lutaml'
|
57
|
+
end
|
58
|
+
result_path = Utils.relative_file_path(parent.document, imagesdir)
|
59
|
+
result_pathname = Pathname.new(result_path)
|
60
|
+
result_pathname.mkpath
|
61
|
+
File.writable?(result_pathname) or raise "Destination path #{result_path} not writable for Lutaml!"
|
62
|
+
|
63
|
+
outfile = Tempfile.new(['lutaml', '.png'])
|
64
|
+
outfile.binmode
|
65
|
+
outfile.puts(formatter.format(uml_document))
|
66
|
+
|
67
|
+
# Warning: metanorma/metanorma-standoc#187
|
68
|
+
# Windows Ruby 2.4 will crash if a Tempfile is "mv"ed.
|
69
|
+
# This is why we need to copy and then unlink.
|
70
|
+
filename = File.basename(outfile.path)
|
71
|
+
FileUtils.cp(outfile, result_pathname) && outfile.unlink
|
72
|
+
|
73
|
+
File.join(result_pathname, filename)
|
74
|
+
end
|
75
|
+
|
76
|
+
def generate_attrs(attrs)
|
77
|
+
through_attrs = %w(id align float title role width height alt).
|
78
|
+
inject({}) do |memo, key|
|
79
|
+
memo[key] = attrs[key] if attrs.has_key? key
|
80
|
+
memo
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -4,6 +4,7 @@ require "liquid"
|
|
4
4
|
require "asciidoctor"
|
5
5
|
require "asciidoctor/reader"
|
6
6
|
require "lutaml"
|
7
|
+
require "metanorma/plugin/lutaml/utils"
|
7
8
|
|
8
9
|
module Metanorma
|
9
10
|
module Plugin
|
@@ -20,7 +21,7 @@ module Metanorma
|
|
20
21
|
|
21
22
|
def content_from_file(document, file_path)
|
22
23
|
::Lutaml::Parser
|
23
|
-
.parse(File.new(relative_file_path(document, file_path),
|
24
|
+
.parse(File.new(Utils.relative_file_path(document, file_path),
|
24
25
|
encoding: "UTF-8"))
|
25
26
|
end
|
26
27
|
|
@@ -34,15 +35,6 @@ module Metanorma
|
|
34
35
|
result
|
35
36
|
end
|
36
37
|
|
37
|
-
def relative_file_path(document, file_path)
|
38
|
-
docfile_directory = File.dirname(
|
39
|
-
document.attributes["docfile"] || "."
|
40
|
-
)
|
41
|
-
document
|
42
|
-
.path_resolver
|
43
|
-
.system_path(file_path, docfile_directory)
|
44
|
-
end
|
45
|
-
|
46
38
|
def process_text_blocks(document, input_lines)
|
47
39
|
line = input_lines.next
|
48
40
|
block_match = line.match(/^\[lutaml,(.+?),(.+?)\]/)
|
@@ -81,32 +73,14 @@ module Metanorma
|
|
81
73
|
context_items:,
|
82
74
|
context_name:,
|
83
75
|
document:)
|
84
|
-
render_result, errors = render_liquid_string(
|
76
|
+
render_result, errors = Utils.render_liquid_string(
|
85
77
|
template_string: context_lines.join("\n"),
|
86
78
|
context_items: context_items,
|
87
79
|
context_name: context_name
|
88
80
|
)
|
89
|
-
notify_render_errors(document, errors)
|
81
|
+
Utils.notify_render_errors(document, errors)
|
90
82
|
render_result.split("\n")
|
91
83
|
end
|
92
|
-
|
93
|
-
def render_liquid_string(template_string:, context_items:,
|
94
|
-
context_name:)
|
95
|
-
liquid_template = Liquid::Template.parse(template_string)
|
96
|
-
rendered_string = liquid_template
|
97
|
-
.render(context_name => context_items,
|
98
|
-
strict_variables: true,
|
99
|
-
error_mode: :warn)
|
100
|
-
[rendered_string, liquid_template.errors]
|
101
|
-
end
|
102
|
-
|
103
|
-
def notify_render_errors(document, errors)
|
104
|
-
errors.each do |error_obj|
|
105
|
-
document
|
106
|
-
.logger
|
107
|
-
.warn("Liquid render error: #{error_obj.message}")
|
108
|
-
end
|
109
|
-
end
|
110
84
|
end
|
111
85
|
end
|
112
86
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Metanorma
|
2
|
+
module Plugin
|
3
|
+
module Lutaml
|
4
|
+
# Helpers for lutaml macroses
|
5
|
+
module Utils
|
6
|
+
module_function
|
7
|
+
|
8
|
+
def relative_file_path(document, file_path)
|
9
|
+
docfile_directory = File.dirname(
|
10
|
+
document.attributes["docfile"] || "."
|
11
|
+
)
|
12
|
+
document
|
13
|
+
.path_resolver
|
14
|
+
.system_path(file_path, docfile_directory)
|
15
|
+
end
|
16
|
+
|
17
|
+
def render_liquid_string(template_string:, context_items:,
|
18
|
+
context_name:)
|
19
|
+
liquid_template = Liquid::Template.parse(template_string)
|
20
|
+
rendered_string = liquid_template
|
21
|
+
.render(context_name => context_items,
|
22
|
+
strict_variables: true,
|
23
|
+
error_mode: :warn)
|
24
|
+
[rendered_string, liquid_template.errors]
|
25
|
+
end
|
26
|
+
|
27
|
+
def notify_render_errors(document, errors)
|
28
|
+
errors.each do |error_obj|
|
29
|
+
document
|
30
|
+
.logger
|
31
|
+
.warn("Liquid render error: #{error_obj.message}")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
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.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: liquid
|
@@ -241,6 +241,7 @@ executables: []
|
|
241
241
|
extensions: []
|
242
242
|
extra_rdoc_files: []
|
243
243
|
files:
|
244
|
+
- ".github/workflows/rake.yml"
|
244
245
|
- ".gitignore"
|
245
246
|
- CODE_OF_CONDUCT.md
|
246
247
|
- Gemfile
|
@@ -250,7 +251,10 @@ files:
|
|
250
251
|
- bin/console
|
251
252
|
- bin/setup
|
252
253
|
- lib/metanorma-plugin-lutaml.rb
|
254
|
+
- lib/metanorma/plugin/lutaml/lutaml_datamodel_attributes_table_preprocessor.rb
|
255
|
+
- lib/metanorma/plugin/lutaml/lutaml_diagram_block.rb
|
253
256
|
- lib/metanorma/plugin/lutaml/lutaml_preprocessor.rb
|
257
|
+
- lib/metanorma/plugin/lutaml/utils.rb
|
254
258
|
- lib/metanorma/plugin/lutaml/version.rb
|
255
259
|
- metanorma-plugin-lutaml.gemspec
|
256
260
|
homepage: https://github.com/metanorma/metanorma-plugin-lutaml
|
@@ -272,7 +276,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
272
276
|
- !ruby/object:Gem::Version
|
273
277
|
version: '0'
|
274
278
|
requirements: []
|
275
|
-
rubygems_version: 3.0.
|
279
|
+
rubygems_version: 3.0.6
|
276
280
|
signing_key:
|
277
281
|
specification_version: 4
|
278
282
|
summary: Metanorma plugin for LutaML
|