mn-requirements 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/isodoc-yaml/i18n-ar.yaml +1 -0
- data/lib/isodoc-yaml/i18n-de.yaml +2 -0
- data/lib/isodoc-yaml/i18n-en.yaml +2 -0
- data/lib/isodoc-yaml/i18n-es.yaml +1 -0
- data/lib/isodoc-yaml/i18n-fr.yaml +2 -0
- data/lib/isodoc-yaml/i18n-ru.yaml +2 -0
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +2 -0
- data/lib/metanorma/modspec/cleanup.rb +4 -4
- data/lib/metanorma/modspec/isodoc.rb +29 -22
- data/lib/metanorma/modspec/reqt_label.rb +2 -2
- data/lib/metanorma/requirements/version.rb +1 -1
- data/mn-requirements.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f30b7b9d9468a1d20886f1d84d6992071a95a2376a5f066bd9b455571e7e425d
|
4
|
+
data.tar.gz: 2888d62224f0110f4a23980042c34490f7f32889146304c56847f0d3b2d18ddc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 289876376e7c00e2c120fb64f1c4be5ab19dba91db83036c6be974eadf8f6f0d291e6316219fad482f0d5df04dee9362afb15e6844ec84ae3029bbf1860242ff
|
7
|
+
data.tar.gz: a868912d83376103770d8602b56fa0643da967a2833e9d9df59fe72f6469d1c6901edb0ef879c78cd5eaa8577f1e6d053269a7ef8eec5c2d5d1fae604c03aab0
|
@@ -15,7 +15,7 @@ module Metanorma
|
|
15
15
|
|
16
16
|
def requirement_metadata_component_tags
|
17
17
|
%w(test-purpose test-method test-method-type conditions part description
|
18
|
-
reference step requirement permission recommendation)
|
18
|
+
reference step requirement permission recommendation guidance)
|
19
19
|
end
|
20
20
|
|
21
21
|
def requirement_metadata1(reqt, dlist, ins)
|
@@ -59,9 +59,9 @@ module Metanorma
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def requirement_metadata_to_component(reqt)
|
62
|
-
|
63
|
-
|
64
|
-
|
62
|
+
xpath = requirement_metadata_component_tags -
|
63
|
+
%w(description requirement permission recommendation)
|
64
|
+
reqt.xpath(xpath.map { |x| ".//#{x}" }.join(" | ")).each do |c|
|
65
65
|
c["class"] = c.name
|
66
66
|
c.name = "component"
|
67
67
|
end
|
@@ -6,7 +6,8 @@ module Metanorma
|
|
6
6
|
class Modspec < Default
|
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
11
|
end
|
11
12
|
|
12
13
|
def recommendation_base(node, _klass)
|
@@ -86,9 +87,8 @@ module Metanorma
|
|
86
87
|
subj = node.at(ns("./subject"))&.children and
|
87
88
|
head << [rec_subj(node), subj]
|
88
89
|
node.xpath(ns("./classification[tag = 'target']/value")).each do |v|
|
89
|
-
xref = recommendation_id(v.text) and
|
90
|
-
rec_target(node), xref
|
91
|
-
]
|
90
|
+
xref = recommendation_id(v.text) and
|
91
|
+
head << [rec_target(node), xref]
|
92
92
|
end
|
93
93
|
head += recommendation_backlinks(node)
|
94
94
|
recommendation_attributes1_dependencies(node, head)
|
@@ -121,35 +121,37 @@ module Metanorma
|
|
121
121
|
head
|
122
122
|
end
|
123
123
|
|
124
|
+
def id_attr(node)
|
125
|
+
node["id"] ? " id='#{node['id']}'" : ""
|
126
|
+
end
|
127
|
+
|
124
128
|
def recommendation_steps(node)
|
125
129
|
node.elements.each { |e| recommendation_steps(e) }
|
126
130
|
return node unless node.at(ns("./component[@class = 'step']"))
|
127
131
|
|
128
132
|
d = node.at(ns("./component[@class = 'step']"))
|
129
|
-
|
130
|
-
|
131
|
-
.first
|
133
|
+
d = d.replace("<ol class='steps'><li#{id_attr(d)}>"\
|
134
|
+
"#{d.children.to_xml}</li></ol>").first
|
132
135
|
node.xpath(ns("./component[@class = 'step']")).each do |f|
|
133
|
-
|
134
|
-
f = f.replace("<li#{id}>#{f.children.to_xml}</li>").first
|
136
|
+
f = f.replace("<li#{id_attr(f)}>#{f.children.to_xml}</li>").first
|
135
137
|
d << f
|
136
138
|
end
|
137
139
|
node
|
138
140
|
end
|
139
141
|
|
140
142
|
def recommendation_attributes1_component(node, out)
|
143
|
+
return out if node["class"] == "guidance"
|
144
|
+
|
141
145
|
node = recommendation_steps(node)
|
142
|
-
|
143
|
-
|
146
|
+
out << "<tr#{id_attr(node)}><td>#{node['label']}</td>"\
|
147
|
+
"<td>#{node.children}</td></tr>"
|
144
148
|
out
|
145
149
|
end
|
146
150
|
|
147
151
|
def recommendation_attr_keyvalue(node, key, value)
|
148
|
-
tag = node.at(ns("./#{key}"))
|
149
|
-
value = node.at(ns("./#{value}"))
|
150
|
-
(tag
|
151
|
-
indirect-dependency).include?(tag.text)) or
|
152
|
-
return nil
|
152
|
+
tag = node.at(ns("./#{key}")) or return nil
|
153
|
+
value = node.at(ns("./#{value}")) or return nil
|
154
|
+
!%w(target indirect-dependency).include?(tag.text) or return nil
|
153
155
|
[tag.text.capitalize, value.children]
|
154
156
|
end
|
155
157
|
|
@@ -165,19 +167,26 @@ module Metanorma
|
|
165
167
|
end
|
166
168
|
|
167
169
|
def requirement_component_parse(node, out)
|
168
|
-
|
169
|
-
|
170
|
+
node["exclude"] == "true" and return out
|
170
171
|
node.elements.size == 1 && node.first_element_child.name == "dl" and
|
171
172
|
return reqt_dl(node.first_element_child, out)
|
172
173
|
node.name == "component" and
|
173
174
|
return recommendation_attributes1_component(node, out)
|
174
|
-
|
175
|
-
out.add_child("<tr#{id}><td colspan='2'></td></tr>").first
|
175
|
+
out.add_child("<tr#{id_attr(node)}><td colspan='2'></td></tr>").first
|
176
176
|
.at(ns(".//td")) <<
|
177
177
|
(preserve_in_nested_table?(node) ? node : node.children)
|
178
178
|
out
|
179
179
|
end
|
180
180
|
|
181
|
+
def requirement_guidance_parse(node, out)
|
182
|
+
ins = out.at(ns("./tbody"))
|
183
|
+
node.xpath(ns("./component[@class = 'guidance']")).each do |f|
|
184
|
+
ins << "<tr#{id_attr(f)}><td>#{@labels['modspec']['guidance']}</td>"\
|
185
|
+
"<td>#{f.children}</td></tr>"
|
186
|
+
end
|
187
|
+
out
|
188
|
+
end
|
189
|
+
|
181
190
|
def reqt_dl(node, out)
|
182
191
|
node.xpath(ns("./dt")).each do |dt|
|
183
192
|
dd = dt.next_element
|
@@ -189,8 +198,6 @@ module Metanorma
|
|
189
198
|
end
|
190
199
|
|
191
200
|
def requirement_table_cleanup(table)
|
192
|
-
return table unless table["type"] == "recommendclass"
|
193
|
-
|
194
201
|
table.xpath(ns("./tbody/tr/td/table")).each do |t|
|
195
202
|
x = t.at(ns("./thead/tr")) or next
|
196
203
|
t.parent.parent.replace(x)
|
@@ -7,14 +7,14 @@ module Metanorma
|
|
7
7
|
|
8
8
|
label = elem.at(ns("./identifier"))&.text
|
9
9
|
if inject_crossreference_reqt?(elem, label)
|
10
|
-
recommendation_label_xref(elem, label, xrefs)
|
10
|
+
recommendation_label_xref(elem, label, xrefs, type)
|
11
11
|
else
|
12
12
|
type = recommendation_class_label(elem)
|
13
13
|
super
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
def recommendation_label_xref(elem, label, xrefs)
|
17
|
+
def recommendation_label_xref(elem, label, xrefs, type)
|
18
18
|
id = @reqtlabels[label]
|
19
19
|
number = xrefs.anchor(id, :xref, false)
|
20
20
|
number.nil? and return type
|
data/mn-requirements.gemspec
CHANGED
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
32
32
|
spec.add_development_dependency "guard", "~> 2.14"
|
33
33
|
spec.add_development_dependency "guard-rspec", "~> 4.7"
|
34
|
+
spec.add_development_dependency "metanorma-standoc"
|
34
35
|
spec.add_development_dependency "rake", "~> 13.0"
|
35
36
|
spec.add_development_dependency "rspec", "~> 3.6"
|
36
37
|
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.1.
|
4
|
+
version: 0.1.5
|
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-
|
11
|
+
date: 2022-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: isodoc-i18n
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '4.7'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: metanorma-standoc
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rake
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|