mn-requirements 0.3.5 → 0.3.6

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: 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