mn-requirements 0.1.5 → 0.1.7

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: f30b7b9d9468a1d20886f1d84d6992071a95a2376a5f066bd9b455571e7e425d
4
- data.tar.gz: 2888d62224f0110f4a23980042c34490f7f32889146304c56847f0d3b2d18ddc
3
+ metadata.gz: c2e26c223fccd1addd079ca0f89fe9fad9f81e7fa1e43c4607245cb95e5c3292
4
+ data.tar.gz: f6765320c97a6a49b164973d39084b72b57206f4a8b3e9eeb86a3835df1cbad0
5
5
  SHA512:
6
- metadata.gz: 289876376e7c00e2c120fb64f1c4be5ab19dba91db83036c6be974eadf8f6f0d291e6316219fad482f0d5df04dee9362afb15e6844ec84ae3029bbf1860242ff
7
- data.tar.gz: a868912d83376103770d8602b56fa0643da967a2833e9d9df59fe72f6469d1c6901edb0ef879c78cd5eaa8577f1e6d053269a7ef8eec5c2d5d1fae604c03aab0
6
+ metadata.gz: 4eb0f1c8d3782eea7066f71809ee2ac05d5cc7d6fa470dee2054c4a4154cb08eda814b5fcc2241cdbe345b3f149b15a0152a2daa76d5fb5df4c1ce41b26cb6e4
7
+ data.tar.gz: 76b1638cdc8a99eb7d6ff2fdfd321fff08fe64bf40b07a2b5ec46aecc7a1110a2feee171b25b334a6b468ab4636056511ad002aec3e78ba67c63d1d3f4ee3cc7
@@ -18,6 +18,9 @@ jobs:
18
18
  uses: metanorma/ci/.github/workflows/rubygems-release.yml@main
19
19
  with:
20
20
  next_version: ${{ github.event.inputs.next_version }}
21
+ release_command: rake release
22
+ bundler_cache: false
23
+ post_install: gem install bundler rake rspec
21
24
  secrets:
22
25
  rubygems-api-key: ${{ secrets.METANORMA_CI_RUBYGEMS_API_KEY }}
23
26
  pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
data/Gemfile CHANGED
@@ -10,3 +10,4 @@ if File.exist? "Gemfile.devel"
10
10
  eval File.read("Gemfile.devel"), nil, "Gemfile.devel" # rubocop:disable Security/Eval
11
11
  end
12
12
 
13
+ gem "isodoc", "~> 2.2.3.1"
@@ -70,7 +70,7 @@ module Metanorma
70
70
  end
71
71
 
72
72
  def recommendation_attr_parse(node, label)
73
- "#{label}: #{node.children.to_xml}"
73
+ l10n("#{label}: #{node.children.to_xml}")
74
74
  end
75
75
 
76
76
  def recommendation_attr_keyvalue(node, key, value)
@@ -1,28 +1,41 @@
1
1
  module Metanorma
2
2
  class Requirements
3
3
  class Modspec < Default
4
+ REQT_TYPE_NORM = {
5
+ requirement: "general",
6
+ recommendation: "general",
7
+ permission: "general",
8
+ requirements_class: "class",
9
+ requirement_class: "class",
10
+ recommendation_class: "class",
11
+ permission_class: "class",
12
+ conformance_test: "verification",
13
+ conformance_class: "conformanceclass",
14
+ abstract_test: "abstracttest",
15
+ }.freeze
16
+
4
17
  def requirement_type_cleanup(reqt)
5
- reqt["type"] = case reqt["type"]
6
- when "requirement", "recommendation", "permission"
7
- "general"
8
- when "requirements_class" then "class"
9
- when "conformance_test" then "verification"
10
- when "conformance_class" then "conformanceclass"
11
- when "abstract_test" then "abstracttest"
12
- else reqt["type"]
13
- end
18
+ ret = REQT_TYPE_NORM[reqt["type"]&.to_sym] or return
19
+ reqt["type"] = ret
14
20
  end
15
21
 
16
22
  def requirement_metadata_component_tags
17
23
  %w(test-purpose test-method test-method-type conditions part description
18
- reference step requirement permission recommendation guidance)
24
+ reference step guidance) +
25
+ requirement_metadata_requirement_tags
26
+ end
27
+
28
+ def requirement_metadata_requirement_tags
29
+ %w(conformance-test conformance-class abstract-test requirement-class
30
+ recommendation-class permission-class requirement permission
31
+ recommendation)
19
32
  end
20
33
 
21
34
  def requirement_metadata1(reqt, dlist, ins)
22
35
  ins1 = super
23
36
  dlist.xpath("./dt").each do |e|
24
- tag = e&.text&.gsub(/ /, "-")&.downcase
25
- next unless requirement_metadata_component_tags.include? tag
37
+ tag = e.text&.gsub(/ /, "-")&.downcase
38
+ next unless requirement_metadata_component_tags.include?(tag)
26
39
 
27
40
  ins1.next = requirement_metadata1_component(e, tag)
28
41
  ins1 = ins1.next
@@ -36,9 +49,9 @@ module Metanorma
36
49
  requirement_metadata1(val, d, d)
37
50
  d.remove
38
51
  end
39
- if REQS.include?(term.text) && !val.text.empty?
52
+ requirement_metadata_requirement_tags.include?(term.text) &&
53
+ !val.text.empty? and
40
54
  val.children = "<identifier>#{val.text.strip}</identifier>"
41
- end
42
55
  val
43
56
  end
44
57
 
@@ -59,8 +72,8 @@ module Metanorma
59
72
  end
60
73
 
61
74
  def requirement_metadata_to_component(reqt)
62
- xpath = requirement_metadata_component_tags -
63
- %w(description requirement permission recommendation)
75
+ xpath = requirement_metadata_component_tags - %w(description) -
76
+ requirement_metadata_requirement_tags
64
77
  reqt.xpath(xpath.map { |x| ".//#{x}" }.join(" | ")).each do |c|
65
78
  c["class"] = c.name
66
79
  c.name = "component"
@@ -68,13 +81,25 @@ module Metanorma
68
81
  end
69
82
 
70
83
  def requirement_metadata_to_requirement(reqt)
71
- reqt.xpath("./requirement | ./permission | ./recommendation")
72
- .each do |c|
84
+ xpath = requirement_metadata_requirement_tags
85
+ reqt.xpath(xpath.map { |x| "./#{x}" }.join(" | ")).each do |c|
73
86
  c["id"] = Metanorma::Utils::anchor_or_uuid
74
87
  c["model"] = reqt["model"] # all requirements must have a model
88
+ requirement_metadata_to_requirement1(c)
75
89
  end
76
90
  end
77
91
 
92
+ def requirement_metadata_to_requirement1(reqt)
93
+ reqt["type"] = reqt.name.sub(/-/, "_")
94
+ reqt.name =
95
+ case reqt.name
96
+ when "recommendation-class", "recommendation" then "recommendation"
97
+ when "permission-class", "permission" then "permission"
98
+ else "requirement"
99
+ end
100
+ requirement_type_cleanup(reqt)
101
+ end
102
+
78
103
  def requirement_subparts_to_blocks(reqt)
79
104
  reqt.xpath(".//component | .//description").each do |c|
80
105
  next if %w(p ol ul dl table component description)
@@ -13,6 +13,7 @@ module Metanorma
13
13
  @default = options[:default]
14
14
  @i18n = i18n_klass(options[:lang] || "en",
15
15
  options[:script] || "Latn",
16
+ options[:locale],
16
17
  options[:i18nhash])
17
18
  @labels = @i18n.get.deep_merge(options[:labels] || {})["requirements"]
18
19
  @models =
@@ -23,8 +24,9 @@ module Metanorma
23
24
  %i[default ogc]
24
25
  end
25
26
 
26
- def i18n_klass(lang = "en", script = "Latn", i18nhash = nil)
27
- ::IsoDoc::MnRequirementsI18n.new(lang, script, i18nhash: i18nhash)
27
+ def i18n_klass(lang, script, locale = nil, i18nhash = nil)
28
+ ::IsoDoc::MnRequirementsI18n.new(lang, script, locale: locale,
29
+ i18nhash: i18nhash)
28
30
  end
29
31
 
30
32
  # all roles that can be assigned to an example to make it a reqt,
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  class Requirements
3
- VERSION = "0.1.5".freeze
3
+ VERSION = "0.1.7".freeze
4
4
  end
5
5
  end
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.require_paths = ["lib"]
25
25
  spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
26
26
 
27
- spec.add_dependency "isodoc-i18n", "~> 1.0.7"
27
+ spec.add_dependency "isodoc-i18n", "~> 1.1.0"
28
28
  spec.add_dependency "metanorma-utils", "~> 1.4.0"
29
29
 
30
30
  spec.add_development_dependency "debug"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mn-requirements
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-22 00:00:00.000000000 Z
11
+ date: 2022-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: isodoc-i18n
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.7
19
+ version: 1.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.7
26
+ version: 1.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: metanorma-utils
29
29
  requirement: !ruby/object:Gem::Requirement