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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf1f2a866187d3c88f1948cfee8cac317fd17aa01a6ed3896470689b5dc644d1
4
- data.tar.gz: 47752b4c4b8cd0fc9f086d83a00dbad165940650ef14353c860b3cbe8c22dd41
3
+ metadata.gz: 3d9bb01b3f5a13668f541d4119e0830655c524be8bcfa9414b41004b2f6fbcc4
4
+ data.tar.gz: a2851e63eece312d2b529aa3fe68de9fffa794768ab1e15a0eec97b86ca9c9f3
5
5
  SHA512:
6
- metadata.gz: b2c871c4788077d0e853813452119c8639fc8d539103a312be1781f17d0e22968b29d28ac62f78f887fc4714123ff598f42b591c8747b14c48ae5c034f356c6a
7
- data.tar.gz: f1545cb37a21c5ec2f00078b9e556bcba25197409a4e42902734cdc378d6b3e1a1822abf4d13f0e92d55c1ad22c58b87e60a90b3873bf088987dc47233404328
6
+ metadata.gz: 1dd880cc2ac6829e851ad8165150af8905f8a558fda49e610a03af6c720d592c25695c135b3acc4c6be415a76c402060a7813b1783f6e3f8a6d0c580a53d4a63
7
+ data.tar.gz: d78b7da3aad28bda7f8b2a1a891ca885068fe4b3261ad684a33e53afc83a5812a4bc13c30d7ef8ca34a0e3d6cc72a1482971ec63a5cec12b28283631cd455cc2
@@ -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 --version 2.38.0.20190211
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
@@ -1,3 +1,4 @@
1
1
  Gemfile.lock
2
2
  .rspec_status
3
- spec/assets/lutaml
3
+ spec/assets/lutaml
4
+ test.err
data/Gemfile CHANGED
@@ -2,4 +2,3 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in metanorma-plugin-lutaml.gemspec
4
4
  gemspec
5
-
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, `lutaml_datamodel_attributes_table` macro
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 `lutaml_datamodel_attributes_table` macro:
112
+ And the `lutaml_uml_attributes_table` macro:
105
113
 
106
114
  [source,adoc]
107
115
  -----
108
- [lutaml_datamodel_attributes_table, example.lutaml, AttributeProfile]
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
- [lutaml_datamodel_attributes_table, example.lutaml, AddressClassProfile]
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/lutaml_datamodel_attributes_table_preprocessor"
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, v| k == 1 })
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(['lutaml', '.lutaml'])
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, reader, uml_document)
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('imagesdir')
54
- File.join(parent.document.attr('imagesdir'), 'lutaml')
54
+ imagesdir = if parent.document.attr("imagesdir")
55
+ File.join(parent.document.attr("imagesdir"), "lutaml")
55
56
  else
56
- 'lutaml'
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) or raise "Destination path #{result_path} not writable for Lutaml!"
62
+ File.writable?(result_pathname) || raise("Destination path #{result_path} not writable for Lutaml!")
62
63
 
63
- outfile = Tempfile.new(['lutaml', '.png'])
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
- 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
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
- Asciidoctor::Reader.new(processed_lines(document, input_lines))
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.push(*process_text_blocks(document, input_lines))
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 parse_template(document, current_block, block_match)
60
- context_items = content_from_file(document, block_match[1])
61
- parse_context_block(document: document,
62
- context_lines: current_block,
63
- context_items: context_items,
64
- context_name: block_match[2].strip)
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 [lutaml_datamodel_attributes_table,path/to/lutaml,EntityName]
15
- class LutamlDatamodelAttributesTablePreprocessor < Asciidoctor::Extensions::Preprocessor
14
+ # @example [lutaml_uml_attributes_table,path/to/lutaml,EntityName]
15
+ class LutamlUmlAttributesTablePreprocessor < Asciidoctor::Extensions::Preprocessor
16
16
  MARCO_REGEXP =
17
- /\[lutaml_datamodel_attributes_table,([^,]+),?(.+)?,([^,]+),?(.+)?\]/
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
- .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
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: 'definition'
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
@@ -1,7 +1,7 @@
1
1
  module Metanorma
2
2
  module Plugin
3
3
  module Lutaml
4
- VERSION = "0.2.0".freeze
4
+ VERSION = "0.2.4-alpha.1".freeze
5
5
  end
6
6
  end
7
7
  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", "~> 0.3.0"
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"
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.0
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: 2020-11-24 00:00:00.000000000 Z
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.3.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.3.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/lutaml_datamodel_attributes_table_preprocessor.rb
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: '0'
279
+ version: 1.3.1
278
280
  requirements: []
279
- rubygems_version: 3.0.6
281
+ rubygems_version: 3.0.3
280
282
  signing_key:
281
283
  specification_version: 4
282
284
  summary: Metanorma plugin for LutaML