metanorma-plugin-lutaml 0.2.0 → 0.2.4.pre.alpha.1
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 +1 -17
- data/.gitignore +2 -1
- data/Gemfile +0 -1
- data/README.adoc +12 -4
- data/lib/metanorma-plugin-lutaml.rb +1 -1
- data/lib/metanorma/plugin/lutaml/express_remarks_decorator.rb +73 -0
- data/lib/metanorma/plugin/lutaml/lutaml_diagram_block.rb +15 -14
- data/lib/metanorma/plugin/lutaml/lutaml_preprocessor.rb +72 -15
- data/lib/metanorma/plugin/lutaml/{lutaml_datamodel_attributes_table_preprocessor.rb → lutaml_uml_attributes_table_preprocessor.rb} +13 -15
- data/lib/metanorma/plugin/lutaml/utils.rb +38 -1
- data/lib/metanorma/plugin/lutaml/version.rb +1 -1
- data/metanorma-plugin-lutaml.gemspec +1 -1
- data/pkg/metanorma-plugin-lutaml-0.2.0.gem +0 -0
- metadata +12 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d9bb01b3f5a13668f541d4119e0830655c524be8bcfa9414b41004b2f6fbcc4
|
4
|
+
data.tar.gz: a2851e63eece312d2b529aa3fe68de9fffa794768ab1e15a0eec97b86ca9c9f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1dd880cc2ac6829e851ad8165150af8905f8a558fda49e610a03af6c720d592c25695c135b3acc4c6be415a76c402060a7813b1783f6e3f8a6d0c580a53d4a63
|
7
|
+
data.tar.gz: d78b7da3aad28bda7f8b2a1a891ca885068fe4b3261ad684a33e53afc83a5812a4bc13c30d7ef8ca34a0e3d6cc72a1482971ec63a5cec12b28283631cd455cc2
|
data/.github/workflows/rake.yml
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
-
# See https://github.com/metanorma/cimas
|
3
1
|
name: rake
|
4
2
|
|
5
3
|
on:
|
@@ -56,7 +54,7 @@ jobs:
|
|
56
54
|
polling_interval_seconds: 5
|
57
55
|
timeout_minutes: 5
|
58
56
|
max_attempts: 3
|
59
|
-
command: choco install --no-progress graphviz
|
57
|
+
command: choco install --no-progress graphviz
|
60
58
|
|
61
59
|
- name: Check dot command
|
62
60
|
if: matrix.os == 'windows-latest'
|
@@ -65,17 +63,3 @@ jobs:
|
|
65
63
|
|
66
64
|
- name: Run specs
|
67
65
|
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
@@ -60,6 +60,14 @@ And the `lutaml` macro block:
|
|
60
60
|
----
|
61
61
|
-----
|
62
62
|
|
63
|
+
Where:
|
64
|
+
|
65
|
+
* content within the block is called the "`template`";
|
66
|
+
|
67
|
+
* `{example.exp}` is the location of the exp schema file that contains data to be loaded. Location of the file is computed relative to the source directory that `[lutaml]` is used (e.g., if `[lutaml,example.exp,my_context]` is invoked in an `.adoc` file located at `/foo/bar/doc.adoc`, the data file is expected to be found at `/foo/bar/example.exp`);
|
68
|
+
|
69
|
+
* `{my_context}` is the name where the EXPRESS Repository read from the .exp file can be accessed with. Context object is a serialized Expressir::Model::Repository object with all variable names available. See https://github.com/lutaml/expressir[Expressir] docs for reference. `{my_context}` has `schemas` method to access Expressir https://github.com/lutaml/expressir/blob/master/lib/expressir/model/schema.rb[schemas]
|
70
|
+
|
63
71
|
Will produce this output:
|
64
72
|
|
65
73
|
[source,adoc]
|
@@ -75,7 +83,7 @@ Will produce this output:
|
|
75
83
|
|
76
84
|
This macro also supports `.lutaml` files.
|
77
85
|
|
78
|
-
=== Usage, `
|
86
|
+
=== Usage, `lutaml_uml_attributes_table` macro
|
79
87
|
|
80
88
|
This macro allows to quickly render datamodel attributes/values tables. Given `example.lutaml` file with the content:
|
81
89
|
|
@@ -101,11 +109,11 @@ diagram MyView {
|
|
101
109
|
}
|
102
110
|
----
|
103
111
|
|
104
|
-
And the `
|
112
|
+
And the `lutaml_uml_attributes_table` macro:
|
105
113
|
|
106
114
|
[source,adoc]
|
107
115
|
-----
|
108
|
-
[
|
116
|
+
[lutaml_uml_attributes_table, example.lutaml, AttributeProfile]
|
109
117
|
-----
|
110
118
|
|
111
119
|
Will produce this output:
|
@@ -130,7 +138,7 @@ In case of "enumeration"(AddressClassProfile) entity:
|
|
130
138
|
|
131
139
|
[source,adoc]
|
132
140
|
-----
|
133
|
-
[
|
141
|
+
[lutaml_uml_attributes_table, example.lutaml, AddressClassProfile]
|
134
142
|
-----
|
135
143
|
|
136
144
|
Will produce this output:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "metanorma/plugin/lutaml/version"
|
2
2
|
require "metanorma/plugin/lutaml/lutaml_preprocessor"
|
3
|
-
require "metanorma/plugin/lutaml/
|
3
|
+
require "metanorma/plugin/lutaml/lutaml_uml_attributes_table_preprocessor"
|
4
4
|
require "metanorma/plugin/lutaml/lutaml_diagram_block"
|
5
5
|
|
6
6
|
module Metanorma
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module Metanorma
|
2
|
+
module Plugin
|
3
|
+
module Lutaml
|
4
|
+
class ExpressRemarksDecorator
|
5
|
+
RELATIVE_PREFIX_MACRO_REGEXP = /^(\* <<express.+?>>;|link|image|video|audio|include)(:+)?(?![^\/:]+:\/\/|[A-Z]:\/|\/)([^:\[]+)(\[.*\])?$/.freeze
|
6
|
+
|
7
|
+
attr_reader :remark, :options
|
8
|
+
|
9
|
+
def self.call(remark, options)
|
10
|
+
new(remark, options).call
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize(remark, options)
|
14
|
+
@remark = remark
|
15
|
+
@options = options
|
16
|
+
end
|
17
|
+
|
18
|
+
def call
|
19
|
+
result = remark
|
20
|
+
if options["leveloffset"]
|
21
|
+
result = process_remark_offsets(result, options["leveloffset"].to_i)
|
22
|
+
end
|
23
|
+
if options["relative_path_prefix"]
|
24
|
+
result = update_relative_paths(result,
|
25
|
+
options["relative_path_prefix"])
|
26
|
+
end
|
27
|
+
result
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def update_relative_paths(string, path_prefix)
|
33
|
+
string
|
34
|
+
.split("\n")
|
35
|
+
.map do |line|
|
36
|
+
if line.match?(RELATIVE_PREFIX_MACRO_REGEXP)
|
37
|
+
prefix_relative_paths(line, path_prefix)
|
38
|
+
else
|
39
|
+
line
|
40
|
+
end
|
41
|
+
end
|
42
|
+
.join("\n")
|
43
|
+
end
|
44
|
+
|
45
|
+
def prefix_relative_paths(line, path_prefix)
|
46
|
+
line.gsub(RELATIVE_PREFIX_MACRO_REGEXP) do |_match|
|
47
|
+
prefixed_path = File.join(path_prefix, $3.strip)
|
48
|
+
"#{$1}#{$2}#{prefixed_path}#{$4}"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def process_remark_offsets(string, offset)
|
53
|
+
string
|
54
|
+
.split("\n")
|
55
|
+
.map do |line|
|
56
|
+
if line.match?(/^=/)
|
57
|
+
set_string_offsets(line, offset)
|
58
|
+
else
|
59
|
+
line
|
60
|
+
end
|
61
|
+
end
|
62
|
+
.join("\n")
|
63
|
+
end
|
64
|
+
|
65
|
+
def set_string_offsets(string, offset)
|
66
|
+
return "#{'=' * offset}#{string}" if offset.positive?
|
67
|
+
|
68
|
+
string.gsub(/^={#{offset * -1}}/, "")
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -22,7 +22,8 @@ module Metanorma
|
|
22
22
|
create_listing_block(
|
23
23
|
parent,
|
24
24
|
reader.source,
|
25
|
-
attrs.reject { |k,
|
25
|
+
attrs.reject { |k, _v| k == 1 }
|
26
|
+
)
|
26
27
|
end
|
27
28
|
|
28
29
|
def process(parent, reader, attrs)
|
@@ -32,35 +33,35 @@ module Metanorma
|
|
32
33
|
through_attrs["target"] = filename
|
33
34
|
through_attrs["title"] = uml_document.caption
|
34
35
|
create_image_block(parent, through_attrs)
|
35
|
-
rescue => e
|
36
|
+
rescue StandardError => e
|
36
37
|
abort(parent, reader, attrs, e.message)
|
37
38
|
end
|
38
39
|
|
39
40
|
private
|
40
41
|
|
41
42
|
def lutaml_temp(reader)
|
42
|
-
temp_file = Tempfile.new([
|
43
|
+
temp_file = Tempfile.new(["lutaml", ".lutaml"])
|
43
44
|
temp_file.puts(reader.read)
|
44
45
|
temp_file.rewind
|
45
46
|
temp_file
|
46
47
|
end
|
47
48
|
|
48
49
|
# if no :imagesdir: leave image file in lutaml
|
49
|
-
def generate_file(parent,
|
50
|
+
def generate_file(parent, _reader, uml_document)
|
50
51
|
formatter = ::Lutaml::Uml::Formatter::Graphviz.new
|
51
52
|
formatter.type = :png
|
52
53
|
|
53
|
-
imagesdir = if parent.document.attr(
|
54
|
-
File.join(parent.document.attr(
|
54
|
+
imagesdir = if parent.document.attr("imagesdir")
|
55
|
+
File.join(parent.document.attr("imagesdir"), "lutaml")
|
55
56
|
else
|
56
|
-
|
57
|
+
"lutaml"
|
57
58
|
end
|
58
59
|
result_path = Utils.relative_file_path(parent.document, imagesdir)
|
59
60
|
result_pathname = Pathname.new(result_path)
|
60
61
|
result_pathname.mkpath
|
61
|
-
File.writable?(result_pathname)
|
62
|
+
File.writable?(result_pathname) || raise("Destination path #{result_path} not writable for Lutaml!")
|
62
63
|
|
63
|
-
outfile = Tempfile.new([
|
64
|
+
outfile = Tempfile.new(["lutaml", ".png"])
|
64
65
|
outfile.binmode
|
65
66
|
outfile.puts(formatter.format(uml_document))
|
66
67
|
|
@@ -74,11 +75,11 @@ module Metanorma
|
|
74
75
|
end
|
75
76
|
|
76
77
|
def generate_attrs(attrs)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
78
|
+
%w(id align float title role width height alt)
|
79
|
+
.reduce({}) do |memo, key|
|
80
|
+
memo[key] = attrs[key] if attrs.has_key? key
|
81
|
+
memo
|
82
|
+
end
|
82
83
|
end
|
83
84
|
end
|
84
85
|
end
|
@@ -5,16 +5,24 @@ require "asciidoctor"
|
|
5
5
|
require "asciidoctor/reader"
|
6
6
|
require "lutaml"
|
7
7
|
require "metanorma/plugin/lutaml/utils"
|
8
|
+
require "metanorma/plugin/lutaml/utils"
|
9
|
+
require "metanorma/plugin/lutaml/express_remarks_decorator"
|
8
10
|
|
9
11
|
module Metanorma
|
10
12
|
module Plugin
|
11
13
|
module Lutaml
|
12
14
|
# Class for processing Lutaml files
|
13
15
|
class LutamlPreprocessor < Asciidoctor::Extensions::Preprocessor
|
16
|
+
REMARKS_ATTRIBUTE = "remarks".freeze
|
14
17
|
|
15
18
|
def process(document, reader)
|
16
19
|
input_lines = reader.readlines.to_enum
|
17
|
-
|
20
|
+
express_indexes = Utils.parse_document_express_indexes(
|
21
|
+
document,
|
22
|
+
input_lines
|
23
|
+
)
|
24
|
+
Asciidoctor::Reader
|
25
|
+
.new(processed_lines(document, input_lines, express_indexes))
|
18
26
|
end
|
19
27
|
|
20
28
|
protected
|
@@ -27,17 +35,22 @@ module Metanorma
|
|
27
35
|
|
28
36
|
private
|
29
37
|
|
30
|
-
def processed_lines(document, input_lines)
|
38
|
+
def processed_lines(document, input_lines, express_indexes)
|
31
39
|
result = []
|
32
40
|
loop do
|
33
|
-
result
|
41
|
+
result
|
42
|
+
.push(*process_text_blocks(
|
43
|
+
document,
|
44
|
+
input_lines,
|
45
|
+
express_indexes
|
46
|
+
))
|
34
47
|
end
|
35
48
|
result
|
36
49
|
end
|
37
50
|
|
38
|
-
def process_text_blocks(document, input_lines)
|
51
|
+
def process_text_blocks(document, input_lines, express_indexes)
|
39
52
|
line = input_lines.next
|
40
|
-
block_match = line.match(/^\[lutaml,(
|
53
|
+
block_match = line.match(/^\[lutaml,([^,]+)?,?([^,]+)?,?([^,]+)?\]/)
|
41
54
|
return [line] if block_match.nil?
|
42
55
|
|
43
56
|
end_mark = input_lines.next
|
@@ -45,7 +58,8 @@ module Metanorma
|
|
45
58
|
collect_internal_block_lines(document,
|
46
59
|
input_lines,
|
47
60
|
end_mark),
|
48
|
-
block_match
|
61
|
+
block_match,
|
62
|
+
express_indexes)
|
49
63
|
end
|
50
64
|
|
51
65
|
def collect_internal_block_lines(_document, input_lines, end_mark)
|
@@ -56,19 +70,62 @@ module Metanorma
|
|
56
70
|
current_block
|
57
71
|
end
|
58
72
|
|
59
|
-
def
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
73
|
+
def contexts_items(block_match, document, express_indexes)
|
74
|
+
contexts_names = block_match[1].split(";").map(&:strip)
|
75
|
+
contexts_names.each_with_object([]) do |path, res|
|
76
|
+
if express_indexes[path]
|
77
|
+
res.push(*express_indexes[path])
|
78
|
+
else
|
79
|
+
res.push(content_from_file(document, path).to_liquid)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def parse_template(document, current_block, block_match, express_indexes)
|
85
|
+
options = parse_options(block_match[3])
|
86
|
+
.merge("relative_path_prefix" => File.dirname(block_match[1]))
|
87
|
+
contexts_items(block_match, document, express_indexes)
|
88
|
+
.map do |context_items|
|
89
|
+
parse_context_block(document: document,
|
90
|
+
context_lines: current_block,
|
91
|
+
context_items: decorate_context_items(context_items, options),
|
92
|
+
context_name: block_match[2].strip)
|
93
|
+
end.flatten
|
65
94
|
rescue StandardError => e
|
66
|
-
document.logger
|
67
|
-
.warn("Failed to parse lutaml \
|
68
|
-
block: #{e.message}")
|
95
|
+
document.logger.warn("Failed to parse lutaml block: #{e.message}")
|
69
96
|
[]
|
70
97
|
end
|
71
98
|
|
99
|
+
def parse_options(options_string)
|
100
|
+
options_string
|
101
|
+
.to_s
|
102
|
+
.scan(/(.+?)=(\s?[^\s]+)/)
|
103
|
+
.map { |elem| elem.map(&:strip) }
|
104
|
+
.to_h
|
105
|
+
end
|
106
|
+
|
107
|
+
def decorate_context_items(context_items, options)
|
108
|
+
return context_items if !context_items.is_a?(Hash)
|
109
|
+
|
110
|
+
context_items
|
111
|
+
.map do |(key, val)|
|
112
|
+
if val.is_a?(Hash)
|
113
|
+
[key, decorate_context_items(val, options)]
|
114
|
+
elsif key == REMARKS_ATTRIBUTE
|
115
|
+
[key,
|
116
|
+
val&.map do |remark|
|
117
|
+
Metanorma::Plugin::Lutaml::ExpressRemarksDecorator
|
118
|
+
.call(remark, options)
|
119
|
+
end]
|
120
|
+
elsif val.is_a?(Array)
|
121
|
+
[key, val.map { |n| decorate_context_items(n, options) }]
|
122
|
+
else
|
123
|
+
[key, val]
|
124
|
+
end
|
125
|
+
end
|
126
|
+
.to_h
|
127
|
+
end
|
128
|
+
|
72
129
|
def parse_context_block(context_lines:,
|
73
130
|
context_items:,
|
74
131
|
context_name:,
|
@@ -11,10 +11,10 @@ module Metanorma
|
|
11
11
|
module Plugin
|
12
12
|
module Lutaml
|
13
13
|
# Macro for quick rendering of datamodel attributes/values table
|
14
|
-
# @example [
|
15
|
-
class
|
14
|
+
# @example [lutaml_uml_attributes_table,path/to/lutaml,EntityName]
|
15
|
+
class LutamlUmlAttributesTablePreprocessor < Asciidoctor::Extensions::Preprocessor
|
16
16
|
MARCO_REGEXP =
|
17
|
-
/\[
|
17
|
+
/\[lutaml_uml_attributes_table,([^,]+),?(.+)?,([^,]+),?(.+)?\]/
|
18
18
|
# search document for block `datamodel_attributes_table`
|
19
19
|
# read include derectives that goes after that in block and transform
|
20
20
|
# into yaml2text blocks
|
@@ -29,10 +29,6 @@ module Metanorma
|
|
29
29
|
::Lutaml::Parser
|
30
30
|
.parse(File.new(Utils.relative_file_path(document, file_path),
|
31
31
|
encoding: "UTF-8"))
|
32
|
-
rescue => e
|
33
|
-
require 'byebug'
|
34
|
-
byebug
|
35
|
-
i =10
|
36
32
|
end
|
37
33
|
|
38
34
|
def processed_lines(document, input_lines)
|
@@ -49,12 +45,12 @@ module Metanorma
|
|
49
45
|
|
50
46
|
def parse_marco(lutaml_path, entity_name, document)
|
51
47
|
lutaml_document = lutaml_document_from_file(document, lutaml_path)
|
52
|
-
|
53
|
-
entities = [lutaml_document[
|
54
|
-
|
55
|
-
|
56
|
-
entity_definition = entities.
|
57
|
-
klass[
|
48
|
+
.serialized_document
|
49
|
+
entities = [lutaml_document["classes"], lutaml_document["enums"]]
|
50
|
+
.compact
|
51
|
+
.flatten
|
52
|
+
entity_definition = entities.detect do |klass|
|
53
|
+
klass["name"] == entity_name.strip
|
58
54
|
end
|
59
55
|
model_representation(entity_definition, document)
|
60
56
|
end
|
@@ -63,12 +59,13 @@ module Metanorma
|
|
63
59
|
render_result, errors = Utils.render_liquid_string(
|
64
60
|
template_string: table_template,
|
65
61
|
context_items: entity_definition,
|
66
|
-
context_name:
|
62
|
+
context_name: "definition"
|
67
63
|
)
|
68
64
|
Utils.notify_render_errors(document, errors)
|
69
65
|
render_result.split("\n")
|
70
66
|
end
|
71
67
|
|
68
|
+
# rubocop:disable Layout/IndentHeredoc
|
72
69
|
def table_template
|
73
70
|
<<~TEMPLATE
|
74
71
|
=== {{ definition.name }}
|
@@ -90,7 +87,7 @@ module Metanorma
|
|
90
87
|
|Name |Definition |Mandatory/ Optional/ Conditional |Max Occur |Data Type
|
91
88
|
|
92
89
|
{% 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 }}`
|
90
|
+
|{{ 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
91
|
{% endfor %}
|
95
92
|
|===
|
96
93
|
{% endif %}
|
@@ -98,6 +95,7 @@ module Metanorma
|
|
98
95
|
|
99
96
|
TEMPLATE
|
100
97
|
end
|
98
|
+
# rubocop:enable Layout/IndentHeredoc
|
101
99
|
end
|
102
100
|
end
|
103
101
|
end
|
@@ -31,7 +31,44 @@ module Metanorma
|
|
31
31
|
.warn("Liquid render error: #{error_obj.message}")
|
32
32
|
end
|
33
33
|
end
|
34
|
+
|
35
|
+
def process_express_index(folder, name, idxs, document)
|
36
|
+
idxs[name] = []
|
37
|
+
Dir["#{Utils.relative_file_path(document, folder)}/*"].each do |path|
|
38
|
+
next if [".", ".."].include?(path)
|
39
|
+
|
40
|
+
begin
|
41
|
+
idxs[name]
|
42
|
+
.push(::Lutaml::Parser.parse(File.new(path, encoding: "UTF-8")).to_liquid)
|
43
|
+
rescue StandardError => e
|
44
|
+
document.logger.warn("Failed to load #{path}: #{e.message}")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def parse_document_express_indexes(document, input_lines)
|
50
|
+
express_indexes = {}
|
51
|
+
loop do
|
52
|
+
line = input_lines.next
|
53
|
+
break if line.length.zero?
|
54
|
+
|
55
|
+
_, name, folder = line.match(/^:lutaml-express-index:(.+?);(.+?)$/)&.to_a
|
56
|
+
if folder && name
|
57
|
+
process_express_index(
|
58
|
+
folder.strip.gsub(";", ""),
|
59
|
+
name.strip,
|
60
|
+
express_indexes,
|
61
|
+
document
|
62
|
+
)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
express_indexes
|
66
|
+
rescue StopIteration
|
67
|
+
express_indexes
|
68
|
+
ensure
|
69
|
+
input_lines.rewind
|
70
|
+
end
|
34
71
|
end
|
35
72
|
end
|
36
73
|
end
|
37
|
-
end
|
74
|
+
end
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.require_paths = ["lib"]
|
25
25
|
|
26
26
|
spec.add_dependency "liquid"
|
27
|
-
spec.add_dependency "lutaml", "
|
27
|
+
spec.add_dependency "lutaml", "0.4.1.pre.alpha.1"
|
28
28
|
spec.add_dependency "lutaml-uml", "~> 0.2.0"
|
29
29
|
spec.add_dependency "metanorma"
|
30
30
|
spec.add_dependency "relaton-cli"
|
Binary file
|
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.2.
|
4
|
+
version: 0.2.4.pre.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: liquid
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: lutaml
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.4.1.pre.alpha.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.4.1.pre.alpha.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: lutaml-uml
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -251,12 +251,14 @@ files:
|
|
251
251
|
- bin/console
|
252
252
|
- bin/setup
|
253
253
|
- lib/metanorma-plugin-lutaml.rb
|
254
|
-
- lib/metanorma/plugin/lutaml/
|
254
|
+
- lib/metanorma/plugin/lutaml/express_remarks_decorator.rb
|
255
255
|
- lib/metanorma/plugin/lutaml/lutaml_diagram_block.rb
|
256
256
|
- lib/metanorma/plugin/lutaml/lutaml_preprocessor.rb
|
257
|
+
- lib/metanorma/plugin/lutaml/lutaml_uml_attributes_table_preprocessor.rb
|
257
258
|
- lib/metanorma/plugin/lutaml/utils.rb
|
258
259
|
- lib/metanorma/plugin/lutaml/version.rb
|
259
260
|
- metanorma-plugin-lutaml.gemspec
|
261
|
+
- pkg/metanorma-plugin-lutaml-0.2.0.gem
|
260
262
|
homepage: https://github.com/metanorma/metanorma-plugin-lutaml
|
261
263
|
licenses:
|
262
264
|
- BSD-2-Clause
|
@@ -272,11 +274,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
272
274
|
version: '0'
|
273
275
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
274
276
|
requirements:
|
275
|
-
- - "
|
277
|
+
- - ">"
|
276
278
|
- !ruby/object:Gem::Version
|
277
|
-
version:
|
279
|
+
version: 1.3.1
|
278
280
|
requirements: []
|
279
|
-
rubygems_version: 3.0.
|
281
|
+
rubygems_version: 3.0.3
|
280
282
|
signing_key:
|
281
283
|
specification_version: 4
|
282
284
|
summary: Metanorma plugin for LutaML
|