metanorma-plugin-lutaml 0.3.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b289ab4f617cefd59b1fe794d256b1e903fdbbf419b2fba937fed2ef686969bc
4
- data.tar.gz: f1a0678e22c0e703b031de634a48851d76ec474403a39cf626c9df31e36d8f4f
3
+ metadata.gz: d99e7b02bf3bfbddcf2d2f81d47e0a83e33abdc0617a9032a106e6930cb05f30
4
+ data.tar.gz: bfc083ccb6fbd3e7824805e90515340812a1a44ba9522485d5b7a9969c36de2a
5
5
  SHA512:
6
- metadata.gz: 20c54f6adb3963c4db9be07adc77c0518f2d3140588a99fe68f177cdc2c927fc4996c3db0bf3a6bcd5ced2147d53ac877c3909ff025b6baa5498e1e491f8f761
7
- data.tar.gz: 4479579349a783361f97c4066fb78d3abb538fcfbc1d6250e9daf9aecc465fa0e93d1240ee1de6b01f9a8750ad89d6e20e77cdfb26aebcf002d95416937eb86b
6
+ metadata.gz: 4f4f9659c0cc4b62cfdd16e43d771eda047ff29c9731d9b397d186a6f0d214681c9c05f7a09f5ccfc70382fcfafae7df0ff833966d8454be2f947ca3ced9e376
7
+ data.tar.gz: dc4de40cee4c6ea453936fe4097f732bea18aa5c92ecedbf9789a9719a994edb4afd0088d9b13fffdfc811b960be391c4272282cb39c063685c46e8865fad2b6
data/Makefile ADDED
@@ -0,0 +1,2 @@
1
+ fix-lint-staged:
2
+ git status --short | egrep '^(A|M)' | awk '{ print $$2}' | grep -v db/schema.rb | xargs bundle exec rubocop -a
@@ -0,0 +1,15 @@
1
+ require "reverse_adoc"
2
+
3
+ module Metanorma
4
+ module Plugin
5
+ module Lutaml
6
+ module Liquid
7
+ module CustomFilters
8
+ def html2adoc(input)
9
+ ReverseAdoc.convert(input)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -21,8 +21,9 @@ module Metanorma
21
21
  document,
22
22
  input_lines
23
23
  )
24
- Asciidoctor::Reader
25
- .new(processed_lines(document, input_lines, express_indexes))
24
+ result_content = processed_lines(document, input_lines, express_indexes)
25
+ result_reader = Asciidoctor::PreprocessorReader.new(document, result_content)
26
+ result_reader
26
27
  end
27
28
 
28
29
  protected
@@ -82,11 +83,17 @@ module Metanorma
82
83
  end
83
84
  end
84
85
  if !file_paths.empty?
85
- from_files = content_from_files(document, file_paths).to_liquid
86
- from_files['schemas'] = from_files['schemas'].map do |n|
87
- n.merge('relative_path_prefix' => Utils.relative_file_path(document, File.dirname(n['file'])))
86
+ from_files = content_from_files(document, file_paths)
87
+ # TODO: decide how to handle expressir multiply file parse as one object and lutaml
88
+ if from_files.is_a?(Array)
89
+ result.push(*from_files.map(&:to_liquid))
90
+ else
91
+ from_files = from_files.to_liquid
92
+ from_files["schemas"] = from_files["schemas"].map do |n|
93
+ n.merge("relative_path_prefix" => Utils.relative_file_path(document, File.dirname(n["file"])))
94
+ end
95
+ result.push(from_files)
88
96
  end
89
- result.push(from_files)
90
97
  end
91
98
  result
92
99
  end
@@ -95,9 +102,9 @@ module Metanorma
95
102
  options = parse_options(block_match[3])
96
103
  contexts_items(block_match, document, express_indexes)
97
104
  .map do |items|
98
- if items['schemas']
99
- items['schemas'] = items['schemas'].map do |j|
100
- opts = options.merge('relative_path_prefix' => j['relative_path_prefix'])
105
+ if items["schemas"]
106
+ items["schemas"] = items["schemas"].map do |j|
107
+ opts = options.merge("relative_path_prefix" => j["relative_path_prefix"])
101
108
  decorate_context_items(j, opts)
102
109
  end
103
110
  end
@@ -106,9 +113,9 @@ module Metanorma
106
113
  context_items: items,
107
114
  context_name: block_match[2].strip)
108
115
  end.flatten
109
- rescue StandardError => e
110
- document.logger.warn("Failed to parse lutaml block: #{e.message}")
111
- []
116
+ rescue StandardError => e
117
+ document.logger.warn("Failed to parse lutaml block: #{e.message}")
118
+ []
112
119
  end
113
120
 
114
121
  def parse_options(options_string)
@@ -148,7 +155,8 @@ module Metanorma
148
155
  render_result, errors = Utils.render_liquid_string(
149
156
  template_string: context_lines.join("\n"),
150
157
  context_items: context_items,
151
- context_name: context_name
158
+ context_name: context_name,
159
+ document: document
152
160
  )
153
161
  Utils.notify_render_errors(document, errors)
154
162
  render_result.split("\n")
@@ -60,7 +60,8 @@ module Metanorma
60
60
  render_result, errors = Utils.render_liquid_string(
61
61
  template_string: table_template,
62
62
  context_items: entity_definition,
63
- context_name: "definition"
63
+ context_name: "definition",
64
+ document: document
64
65
  )
65
66
  Utils.notify_render_errors(document, errors)
66
67
  render_result.split("\n")
@@ -1,4 +1,7 @@
1
- require "expressir/express_exp/cache"
1
+ require "expressir/express/cache"
2
+ require "metanorma/plugin/lutaml/liquid/custom_filters"
3
+
4
+ ::Liquid::Template.register_filter(Metanorma::Plugin::Lutaml::Liquid::CustomFilters)
2
5
 
3
6
  module Metanorma
4
7
  module Plugin
@@ -19,8 +22,10 @@ module Metanorma
19
22
  end
20
23
 
21
24
  def render_liquid_string(template_string:, context_items:,
22
- context_name:)
23
- liquid_template = Liquid::Template.parse(template_string)
25
+ context_name:, document:)
26
+ liquid_template = ::Liquid::Template.parse(template_string)
27
+ # Allow includes for the template
28
+ liquid_template.registers[:file_system] = ::Liquid::LocalFileSystem.new(Utils.relative_file_path(document, ""))
24
29
  rendered_string = liquid_template
25
30
  .render(context_name => context_items,
26
31
  strict_variables: true,
@@ -48,11 +53,12 @@ module Metanorma
48
53
  express_write_cache(cache_full_path, wrapper.original_document, document)
49
54
  end
50
55
  wrapper
56
+ rescue Expressir::Error
57
+ FileUtils.rm_rf(cache_full_path)
58
+ process_express_index(path, cache_path, document, true)
51
59
  rescue StandardError => e
52
60
  document.logger.warn("Failed to load #{full_path}: #{e.message}")
53
61
  nil
54
- rescue Expressir::ExpressExp::CacheLoadError
55
- process_express_index(path, cache_path, document, true)
56
62
  end
57
63
 
58
64
  def express_from_cache(path)
@@ -61,11 +67,11 @@ module Metanorma
61
67
  end
62
68
 
63
69
  def express_write_cache(path, repository, document)
64
- root_path = Pathname.new(relative_file_path(document, ''))
65
- Expressir::ExpressExp::Cache
70
+ root_path = Pathname.new(relative_file_path(document, ""))
71
+ Expressir::Express::Cache
66
72
  .to_file(path,
67
- repository,
68
- root_path: root_path)
73
+ repository,
74
+ root_path: root_path)
69
75
  end
70
76
 
71
77
  def express_from_path(document, path)
@@ -83,24 +89,24 @@ module Metanorma
83
89
 
84
90
  def express_decorate_wrapper(wrapper, document)
85
91
  serialized = wrapper.to_liquid
86
- serialized['schemas'] = serialized['schemas'].map do |j|
87
- j.merge('relative_path_prefix' => Utils.relative_file_path(document, File.dirname(j['file'])))
92
+ serialized["schemas"] = serialized["schemas"].map do |j|
93
+ j.merge("relative_path_prefix" => Utils.relative_file_path(document, File.dirname(j["file"])))
88
94
  end
89
95
  serialized
90
96
  end
91
97
 
92
98
  def express_from_index(document, path)
93
99
  yaml_content = YAML.safe_load(File.read(path))
94
- root_path = yaml_content['path']
100
+ root_path = yaml_content["path"]
95
101
  schemas_paths = yaml_content
96
- .fetch('schemas')
97
- .map do |(schema_name, schema_values)|
98
- if schema_values['path']
99
- schema_values['path']
100
- else
101
- File.join(root_path.to_s, "#{schema_name}.exp")
102
- end
103
- end
102
+ .fetch("schemas")
103
+ .map do |(schema_name, schema_values)|
104
+ if schema_values["path"]
105
+ schema_values["path"]
106
+ else
107
+ File.join(root_path.to_s, "#{schema_name}.exp")
108
+ end
109
+ end
104
110
  files_to_load = schemas_paths.map do |path|
105
111
  File.new(Utils.relative_file_path(document, path), encoding: "UTF-8")
106
112
  end
@@ -1,7 +1,7 @@
1
1
  module Metanorma
2
2
  module Plugin
3
3
  module Lutaml
4
- VERSION = "0.3.0".freeze
4
+ VERSION = "0.4.1".freeze
5
5
  end
6
6
  end
7
7
  end
@@ -24,16 +24,16 @@ 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.5.0"
28
- spec.add_dependency "lutaml-uml", "~> 0.2.0"
27
+ spec.add_dependency "lutaml"
29
28
  spec.add_dependency "metanorma"
30
29
  spec.add_dependency "relaton-cli"
30
+ spec.add_dependency "reverse_adoc"
31
31
 
32
32
  spec.add_development_dependency "byebug"
33
33
  spec.add_development_dependency "equivalent-xml"
34
34
  spec.add_development_dependency "metanorma-standoc"
35
35
  spec.add_development_dependency "pry", "~> 0.12.2"
36
- spec.add_development_dependency "rake", "~> 12.0"
36
+ spec.add_development_dependency "rake", "~> 13"
37
37
  spec.add_development_dependency "rspec", "~> 3.6"
38
38
  spec.add_development_dependency "rubocop", "= 0.54.0"
39
39
  spec.add_development_dependency "simplecov", "~> 0.15"
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.3.0
4
+ version: 0.4.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: 2021-03-16 00:00:00.000000000 Z
11
+ date: 2021-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: liquid
@@ -28,32 +28,32 @@ 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.5.0
33
+ version: '0'
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.5.0
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: lutaml-uml
42
+ name: metanorma
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.2.0
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.2.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: metanorma
56
+ name: relaton-cli
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: relaton-cli
70
+ name: reverse_adoc
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '12.0'
145
+ version: '13'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '12.0'
152
+ version: '13'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rspec
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -247,12 +247,14 @@ files:
247
247
  - Dockerfile
248
248
  - Gemfile
249
249
  - LICENSE
250
+ - Makefile
250
251
  - README.adoc
251
252
  - Rakefile
252
253
  - bin/console
253
254
  - bin/setup
254
255
  - lib/metanorma-plugin-lutaml.rb
255
256
  - lib/metanorma/plugin/lutaml/express_remarks_decorator.rb
257
+ - lib/metanorma/plugin/lutaml/liquid/custom_filters.rb
256
258
  - lib/metanorma/plugin/lutaml/lutaml_diagram_block.rb
257
259
  - lib/metanorma/plugin/lutaml/lutaml_preprocessor.rb
258
260
  - lib/metanorma/plugin/lutaml/lutaml_uml_attributes_table_preprocessor.rb
@@ -279,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
281
  - !ruby/object:Gem::Version
280
282
  version: '0'
281
283
  requirements: []
282
- rubygems_version: 3.0.3
284
+ rubygems_version: 3.1.6
283
285
  signing_key:
284
286
  specification_version: 4
285
287
  summary: Metanorma plugin for LutaML