mn-requirements 0.3.5 → 0.3.6

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: 33414d3ac6b85f24c09e8dd8555f26e776b5c1ddd67aaf0a15217e0b9466e324
4
- data.tar.gz: '098df5f8bba64b14bfef2ceead84bc5cc230f4601a33329092f382fcc9bce7d2'
3
+ metadata.gz: 754071e6a128c01af6fd2526dce1b8cbbecb043e9e9a4f76877ba076a5edf573
4
+ data.tar.gz: 8937c93e2818e1c5a8ba3b69320e740b7f271e372660f6f4ad5e9a58e491edc6
5
5
  SHA512:
6
- metadata.gz: b7fe62355d49df8647545cdacff491d6d7aa4696f8f680ef468839930b5c12614706f80e8adf99fa4ab2f48b42a03adf4a282acdafc23d52ceabe4d2e8093fa5
7
- data.tar.gz: 1a7babef01ab00b531200e100b8feaf99f4a817dc14e7c9e7c0c200525443d71d0a8fa0dcee17dfdced1197104067c4e254b707f1f69d04581cd5a32dd01395a
6
+ metadata.gz: ffd53201ea85a67bfe53b14a6e96696c6d0581ff2a56205e35756c15f7713ca184fef57e547767ce0f5bd96b8bacc284cf9852153e1cc848cc1cda57bb9971bc
7
+ data.tar.gz: e350c1ca4121ac9bdcbece442b2a93d544eeed699d262e169ef883cff52deac2fddb47c308274e9377a178d711a26a44097498f9e8cc7419f370b2e1810407e4
data/Gemfile CHANGED
@@ -4,8 +4,12 @@ Encoding.default_internal = Encoding::UTF_8
4
4
  source "https://rubygems.org"
5
5
  git_source(:github) { |repo| "https://github.com/#{repo}" }
6
6
 
7
- gemspec
7
+ group :development, :test do
8
+ gem "rspec"
9
+ end
8
10
 
9
11
  if File.exist? "Gemfile.devel"
10
12
  eval File.read("Gemfile.devel"), nil, "Gemfile.devel" # rubocop:disable Security/Eval
11
13
  end
14
+
15
+ gemspec
@@ -11,7 +11,6 @@ module Metanorma
11
11
  def recommendation_label(elem, type, xrefs)
12
12
  @xrefs ||= xrefs.dup
13
13
  init_lookups(elem.document)
14
-
15
14
  label = elem.at(ns("./identifier"))&.text
16
15
  if inject_crossreference_reqt?(elem, label)
17
16
  recommendation_label_xref(elem, label, xrefs, type)
@@ -182,7 +181,6 @@ module Metanorma
182
181
 
183
182
  def truncate_id_base_outside_reqts(docxml)
184
183
  @modspecidentifierbase or return
185
-
186
184
  (docxml.xpath(ns("//xref[@style = 'id']")) - docxml
187
185
  .xpath(ns("//requirement//xref | //permission//xref | " \
188
186
  "//recommendation//xref"))).each do |x|
@@ -1,3 +1,5 @@
1
+ require "uri"
2
+
1
3
  module Metanorma
2
4
  class Requirements
3
5
  class Modspec < Default
@@ -6,9 +8,25 @@ module Metanorma
6
8
  requirement_table_consec_rows_cleanup(node, table)
7
9
  node.ancestors("requirement, recommendation, permission").empty? and
8
10
  truncate_id_base_in_reqt(table)
11
+ cell2link(table)
9
12
  table
10
13
  end
11
14
 
15
+ def cell2link(table)
16
+ table.xpath(ns(".//td")).each do |td|
17
+ td.elements.empty? or next
18
+ uri?(td.text.strip) or next
19
+ td.children = "<link target='#{td.text.strip}'/>"
20
+ end
21
+ end
22
+
23
+ def uri?(string)
24
+ uri = URI.parse(string)
25
+ %w(http https).include?(uri.scheme)
26
+ rescue URI::BadURIError, URI::InvalidURIError
27
+ false
28
+ end
29
+
12
30
  def requirement_table_consec_rows_cleanup(_node, table)
13
31
  table.xpath(ns("./tbody/tr")).each do |tr|
14
32
  conflate_table_rows?(tr) or next
@@ -19,7 +37,6 @@ module Metanorma
19
37
  def conflate_table_rows?(trow)
20
38
  tr1 = trow.next or return
21
39
  tr1.name == "tr" or return
22
-
23
40
  th = trow.at(ns("./th"))&.text
24
41
  th && th == tr1.at(ns("./th"))&.text
25
42
  end
@@ -4,12 +4,10 @@ module Metanorma
4
4
  class Requirements
5
5
  class Modspec < Default
6
6
  def validate(reqt, log)
7
- @fatalerrors = []
8
7
  @log ||= log
9
8
  @ids ||= reqt_links(reqt.document)
10
9
  reqt_cycles_validate
11
10
  reqt_link_validate(reqt)
12
- @fatalerrors
13
11
  end
14
12
 
15
13
  def nested_reqt?(reqt)
@@ -130,8 +128,7 @@ module Metanorma
130
128
 
131
129
  if hash[:label][struct[:label]]
132
130
  msg = "Modspec identifier #{struct[:label]} is used more than once"
133
- @log.add("Requirements", reqt, msg)
134
- @fatalerrors << msg
131
+ @log.add("Requirements", reqt, msg, severity: 0)
135
132
  end
136
133
  hash[:label][struct[:label]] = reqt["id"]
137
134
  hash
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  class Requirements
3
- VERSION = "0.3.5".freeze
3
+ VERSION = "0.3.6".freeze
4
4
  end
5
5
  end
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
33
33
  spec.add_development_dependency "guard", "~> 2.14"
34
34
  spec.add_development_dependency "guard-rspec", "~> 4.7"
35
- spec.add_development_dependency "metanorma-standoc"
35
+ spec.add_development_dependency "metanorma-standoc", ">= 2.7.2"
36
36
  spec.add_development_dependency "rake", "~> 13.0"
37
37
  spec.add_development_dependency "rspec", "~> 3.6"
38
38
  spec.add_development_dependency "rubocop", "~> 1.5.2"
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.3.5
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-18 00:00:00.000000000 Z
11
+ date: 2023-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: isodoc-i18n
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 2.7.2
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 2.7.2
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement