mn-requirements 0.1.6 → 0.1.8

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: 9e3ca9ac70068ad84544ecd69a028aa771675c790affd49f35812b2a8677ffdc
4
- data.tar.gz: e47bf092f613aa369275f154a9937f5d32c3b88f9cfddf8492a95268c6d3d76c
3
+ metadata.gz: 241d16930a4f1ea42bad8fb33599eae423582f76111dbf64272afb20141b69ea
4
+ data.tar.gz: 63c1107edba65cade52ddd9bda6af1fac1e02540ab2f2904a9e6c1af264f4e3a
5
5
  SHA512:
6
- metadata.gz: aa55fdb9e247e0c5c22daa72a3ce16e5a953af35bf128cd02782e1a24b261acc0a3bc5ac8eb19db04164b0375d5c6a3d62455eac0eacbb9c1be7e14546e220a1
7
- data.tar.gz: 58eba09e93a17784d3cf4540e0c90a6dbf8c7e44a364038d3926183acdb842d061e9375b1e07c9e28955eb768e21d4556517fc3a4caeafb6cc70187614b77db7
6
+ metadata.gz: d33e761d47985154817ac6334406771946fc1dc88c6fb38a1a76f0db7d0c43beb5bd316bfe5bcf2c5aab7a2bb1c9953e3e4a544ca354b8e4f08a004e3bc14a87
7
+ data.tar.gz: d276f8e75000218b83442b3c8daa76d43f295b2781488fba401cffc6ec92b76f9fe27313f16135392c40a793f216ec6701e03b45c6d6cbe983d44678bc718b59
@@ -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
@@ -9,4 +9,3 @@ gemspec
9
9
  if File.exist? "Gemfile.devel"
10
10
  eval File.read("Gemfile.devel"), nil, "Gemfile.devel" # rubocop:disable Security/Eval
11
11
  end
12
-
@@ -45,12 +45,12 @@ module Metanorma
45
45
  label, title, name = recommendation_labels(node)
46
46
  ret = name ? [name] : []
47
47
  if label || title
48
- ret << l10n(":") unless ret.empty?
48
+ ret << ":" unless ret.empty?
49
49
  ret += ["<br/>", label]
50
- ret << l10n(". ") if label && title
50
+ ret << ". " if label && title
51
51
  ret << title
52
52
  end
53
- out << "<name>#{ret.compact.join}</name>"
53
+ out << "<name>#{l10n(ret.compact.join)}</name>"
54
54
  out
55
55
  end
56
56
 
@@ -70,13 +70,14 @@ 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)
77
77
  tag = node.at(ns("./#{key}")) or return nil
78
78
  value = node.at(ns("./#{value}")) or return nil
79
- "#{tag.text.capitalize}: #{value.children.to_xml}"
79
+ l10n("#{Metanorma::Utils.strict_capitalize_first tag.text}: "\
80
+ "#{value.children.to_xml}")
80
81
  end
81
82
 
82
83
  def recommendation_attributes(node, out)
@@ -49,9 +49,17 @@ module Metanorma
49
49
  requirement_metadata1(val, d, d)
50
50
  d.remove
51
51
  end
52
- requirement_metadata_requirement_tags.include?(term.text) &&
53
- !val.text.empty? and
52
+ requirement_metadata_requirement_tags.include?(term.text) or
53
+ return val
54
+ requirement_metadata1_component_val2id(val)
55
+ end
56
+
57
+ def requirement_metadata1_component_val2id(val)
58
+ if val.at(".//link") && val.text.strip.empty?
59
+ val.children = "<identifier>#{val.at('.//link')['target']}</identifier>"
60
+ elsif !val.text.strip.empty?
54
61
  val.children = "<identifier>#{val.text.strip}</identifier>"
62
+ end
55
63
  val
56
64
  end
57
65
 
@@ -7,7 +7,7 @@ module Metanorma
7
7
  def requirement_render1(node)
8
8
  init_lookups(node.document)
9
9
  ret = requirement_guidance_parse(node, super)
10
- requirement_table_cleanup(ret)
10
+ requirement_table_cleanup(node, ret)
11
11
  end
12
12
 
13
13
  def recommendation_base(node, _klass)
@@ -52,9 +52,9 @@ module Metanorma
52
52
  return ret unless title &&
53
53
  node.ancestors("requirement, recommendation, permission").empty?
54
54
 
55
- ret += l10n(": ") unless !name || name.text.empty?
55
+ ret += ": " unless !name || name.text.empty?
56
56
  ret += title.children.to_xml
57
- ret
57
+ l10n(ret)
58
58
  end
59
59
 
60
60
  def recommendation_attributes(node, out)
@@ -152,7 +152,7 @@ module Metanorma
152
152
  tag = node.at(ns("./#{key}")) or return nil
153
153
  value = node.at(ns("./#{value}")) or return nil
154
154
  !%w(target indirect-dependency).include?(tag.text) or return nil
155
- [tag.text.capitalize, value.children]
155
+ [Metanorma::Utils.strict_capitalize_first(tag.text), value.children]
156
156
  end
157
157
 
158
158
  def reqt_component_type(node)
@@ -197,7 +197,7 @@ module Metanorma
197
197
  out
198
198
  end
199
199
 
200
- def requirement_table_cleanup(table)
200
+ def requirement_table_cleanup(_node, table)
201
201
  table.xpath(ns("./tbody/tr/td/table")).each do |t|
202
202
  x = t.at(ns("./thead/tr")) or next
203
203
  t.parent.parent.replace(x)
@@ -48,7 +48,7 @@ module Metanorma
48
48
 
49
49
  def recommendation_class_label(node)
50
50
  case node["type"]
51
- when "verification" then @labels["modspec"]["#{node.name}test"]
51
+ when "verification" then @labels["modspec"]["conformancetest"]
52
52
  when "class" then @labels["modspec"]["#{node.name}class"]
53
53
  when "abstracttest" then @labels["modspec"]["abstracttest"]
54
54
  when "conformanceclass" then @labels["modspec"]["conformanceclass"]
@@ -27,6 +27,7 @@ module Metanorma
27
27
  def type2validate(reqt)
28
28
  type = reqt["type"]
29
29
  type = "general" if type.nil? || type.empty?
30
+ type = "verification" if type == "abstracttest"
30
31
  type
31
32
  end
32
33
 
@@ -48,7 +49,7 @@ module Metanorma
48
49
 
49
50
  r = @ids[:id][reqt["id"]]
50
51
  (r[:label] && @ids[:class][confclass]&.any? do |x|
51
- x[:subject] == r[:label]
52
+ x[:subject].include?(r[:label])
52
53
  end) and return
53
54
  log_reqt(r, reqtclass, confclass)
54
55
  end
@@ -58,7 +59,7 @@ module Metanorma
58
59
 
59
60
  r = @ids[:id][reqt["id"]]
60
61
  (r[:subject] && @ids[:class][reqtclass]&.any? do |x|
61
- r[:subject] == x[:label]
62
+ r[:subject].include?(x[:label])
62
63
  end) and return
63
64
  log_reqt(r, confclass, reqtclass)
64
65
  end
@@ -100,7 +101,8 @@ module Metanorma
100
101
 
101
102
  def reqt_links_struct(reqt)
102
103
  { id: reqt["id"], elem: reqt, label: reqt.at("./identifier")&.text,
103
- subject: reqt.at("./classification[tag = 'target']/value")&.text,
104
+ subject: reqt.xpath("./classification[tag = 'target']/value")
105
+ .map(&:text),
104
106
  child: reqt.xpath("./requirement | ./recommendation | ./permission")
105
107
  .map do |r|
106
108
  r.at("./identifier")&.text
@@ -9,11 +9,11 @@ module Metanorma
9
9
  xpath: "requirement[@type = 'class']" },
10
10
  { klass: "recommendationclass", label: @labels["modspec"]["recommendationclass"],
11
11
  xpath: "recommendation[@type = 'class']" },
12
- { klass: "permissiontest", label: @labels["modspec"]["permissiontest"],
12
+ { klass: "permissiontest", label: @labels["modspec"]["conformancetest"],
13
13
  xpath: "permission[@type = 'verification']" },
14
- { klass: "recommendationtest", label: @labels["modspec"]["recommendationtest"],
14
+ { klass: "recommendationtest", label: @labels["modspec"]["conformancetest"],
15
15
  xpath: "recommendation[@type = 'verification']" },
16
- { klass: "requirementtest", label: @labels["modspec"]["requirementtest"],
16
+ { klass: "requirementtest", label: @labels["modspec"]["conformancetest"],
17
17
  xpath: "requirement[@type = 'verification']" },
18
18
  { klass: "abstracttest", label: @labels["modspec"]["abstracttest"],
19
19
  xpath: "permission[@type = 'abstracttest']" },
@@ -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.6".freeze
3
+ VERSION = "0.1.8".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.2"
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.6
4
+ version: 0.1.8
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-23 00:00:00.000000000 Z
11
+ date: 2022-10-05 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.2
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.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: metanorma-utils
29
29
  requirement: !ruby/object:Gem::Requirement