metanorma-iso 2.4.6 → 2.4.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/isodoc/iso/html/style-human.css +15 -11
- data/lib/isodoc/iso/html/style-human.scss +8 -8
- data/lib/isodoc/iso/html/style-iso.css +26 -22
- data/lib/isodoc/iso/html/style-iso.scss +19 -19
- data/lib/isodoc/iso/i18n-en.yaml +6 -0
- data/lib/isodoc/iso/i18n-fr.yaml +6 -0
- data/lib/isodoc/iso/i18n-ja.yaml +1 -0
- data/lib/isodoc/iso/i18n-ru.yaml +6 -0
- data/lib/isodoc/iso/i18n-zh-Hans.yaml +3 -0
- data/lib/isodoc/iso/iso.amendment.xsl +370 -227
- data/lib/isodoc/iso/iso.international-standard.xsl +370 -227
- data/lib/metanorma/iso/front.rb +18 -3
- data/lib/metanorma/iso/front_id.rb +6 -45
- data/lib/metanorma/iso/validate.rb +0 -16
- data/lib/metanorma/iso/version.rb +1 -1
- metadata +2 -2
data/lib/metanorma/iso/front.rb
CHANGED
@@ -12,12 +12,18 @@ module Metanorma
|
|
12
12
|
def metadata_ext(node, xml)
|
13
13
|
super
|
14
14
|
structured_id(node, xml)
|
15
|
+
metadata_stage(node, xml)
|
16
|
+
@amd && a = node.attr("updates-document-type") and
|
17
|
+
xml.updates_document_type a
|
18
|
+
end
|
19
|
+
|
20
|
+
def metadata_stage(node, xml)
|
15
21
|
id = iso_id_default(iso_id_params(node))
|
16
22
|
id.stage and
|
17
23
|
xml.stagename metadata_stagename(id)&.strip,
|
18
24
|
**attr_code(abbreviation: id.typed_stage_abbrev&.strip)
|
19
|
-
|
20
|
-
|
25
|
+
rescue Pubid::Core::Errors::HarmonizedStageCodeInvalidError,
|
26
|
+
Pubid::Core::Errors::TypeStageParseError
|
21
27
|
end
|
22
28
|
|
23
29
|
def metadata_stagename(id)
|
@@ -92,8 +98,17 @@ module Metanorma
|
|
92
98
|
xml.status do |s|
|
93
99
|
s.stage stage, **attr_code(abbreviation: abbrev)
|
94
100
|
s.substage substage
|
95
|
-
node.attr("iteration")
|
101
|
+
i = node.attr("iteration") and s.iteration i
|
96
102
|
end
|
103
|
+
rescue Pubid::Core::Errors::HarmonizedStageCodeInvalidError,
|
104
|
+
Pubid::Core::Errors::TypeStageParseError
|
105
|
+
report_illegal_stage(stage, substage)
|
106
|
+
end
|
107
|
+
|
108
|
+
def report_illegal_stage(stage, substage)
|
109
|
+
err = "Illegal document stage: #{stage}.#{substage}"
|
110
|
+
@log.add("Document Attributes", nil, err)
|
111
|
+
warn err
|
97
112
|
end
|
98
113
|
|
99
114
|
def metadata_committee(node, xml)
|
@@ -10,41 +10,6 @@ require "pubid-iso"
|
|
10
10
|
module Metanorma
|
11
11
|
module ISO
|
12
12
|
class Converter < Standoc::Converter
|
13
|
-
STAGE_ABBRS = {
|
14
|
-
"00": "PWI",
|
15
|
-
"10": "NP",
|
16
|
-
"20": "WD",
|
17
|
-
"30": "CD",
|
18
|
-
"40": "DIS",
|
19
|
-
"50": "FDIS",
|
20
|
-
"60": "IS",
|
21
|
-
"90": "(Review)",
|
22
|
-
"95": "(Withdrawal)",
|
23
|
-
}.freeze
|
24
|
-
|
25
|
-
STAGE_NAMES = {
|
26
|
-
"00": "Preliminary work item",
|
27
|
-
"10": "New work item proposal",
|
28
|
-
"20": "Working draft",
|
29
|
-
"30": "Committee draft",
|
30
|
-
"40": "Draft",
|
31
|
-
"50": "Final draft",
|
32
|
-
"60": "International standard",
|
33
|
-
"90": "Review",
|
34
|
-
"95": "Withdrawal",
|
35
|
-
}.freeze
|
36
|
-
|
37
|
-
def stage_abbr(stage, substage, _doctype)
|
38
|
-
return nil if stage.to_i > 60
|
39
|
-
|
40
|
-
ret = STAGE_ABBRS[stage.to_sym]
|
41
|
-
ret = "PRF" if stage == "60" && substage == "00"
|
42
|
-
ret = nil if stage == "60" && substage != "00"
|
43
|
-
ret = "AWI" if stage == "10" && substage == "99"
|
44
|
-
ret = "AWI" if stage == "20" && substage == "00"
|
45
|
-
ret
|
46
|
-
end
|
47
|
-
|
48
13
|
def metadata_id(node, xml)
|
49
14
|
if id = node.attr("docidentifier")
|
50
15
|
xml.docidentifier id, **attr_code(type: "ISO")
|
@@ -103,23 +68,19 @@ module Metanorma
|
|
103
68
|
|
104
69
|
def iso_id_params_add(node)
|
105
70
|
stage = iso_id_stage(node)
|
106
|
-
|
107
71
|
ret = { number: node.attr("amendment-number") ||
|
108
72
|
node.attr("corrigendum-number"),
|
109
73
|
year: iso_id_year(node),
|
110
74
|
iteration: node.attr("iteration") }.compact
|
111
|
-
|
112
|
-
|
75
|
+
if stage
|
76
|
+
ret[:stage] = stage
|
77
|
+
ret[:stage] == "60.00" and ret[:stage] = :PRF
|
78
|
+
end
|
113
79
|
ret
|
114
80
|
end
|
115
81
|
|
116
82
|
def iso_id_stage(node)
|
117
|
-
|
118
|
-
doctype(node))
|
119
|
-
harmonised = "#{get_stage(node)}.#{get_substage(node)}"
|
120
|
-
harmonised = nil unless /^\d\d\.\d\d/.match?(harmonised)
|
121
|
-
{ abbr: stage&.to_sym, harmonized_code: harmonised }
|
122
|
-
harmonised || stage&.to_sym
|
83
|
+
"#{get_stage(node)}.#{get_substage(node)}"
|
123
84
|
end
|
124
85
|
|
125
86
|
def iso_id_year(node)
|
@@ -195,7 +156,7 @@ module Metanorma
|
|
195
156
|
def structured_id(node, xml)
|
196
157
|
return unless node.attr("docnumber")
|
197
158
|
|
198
|
-
part, subpart = node&.attr("partnumber")&.split(
|
159
|
+
part, subpart = node&.attr("partnumber")&.split("-")
|
199
160
|
xml.structuredidentifier do |i|
|
200
161
|
i.project_number(node.attr("docnumber"), **attr_code(
|
201
162
|
part: part, subpart: subpart,
|
@@ -132,20 +132,6 @@ module Metanorma
|
|
132
132
|
"#{script} is not a recognised script")
|
133
133
|
end
|
134
134
|
|
135
|
-
def stage_validate(xmldoc)
|
136
|
-
stage = xmldoc&.at("//bibdata/status/stage")&.text
|
137
|
-
%w(00 10 20 30 40 50 60 90 95).include? stage or
|
138
|
-
@log.add("Document Attributes", nil,
|
139
|
-
"#{stage} is not a recognised stage")
|
140
|
-
end
|
141
|
-
|
142
|
-
def substage_validate(xmldoc)
|
143
|
-
substage = xmldoc&.at("//bibdata/status/substage")&.text or return
|
144
|
-
%w(00 20 60 90 92 93 98 99).include? substage or
|
145
|
-
@log.add("Document Attributes", nil,
|
146
|
-
"#{substage} is not a recognised substage")
|
147
|
-
end
|
148
|
-
|
149
135
|
def iteration_validate(xmldoc)
|
150
136
|
iteration = xmldoc&.at("//bibdata/status/iteration")&.text or return
|
151
137
|
/^\d+/.match(iteration) or
|
@@ -156,8 +142,6 @@ module Metanorma
|
|
156
142
|
def bibdata_validate(doc)
|
157
143
|
doctype_validate(doc)
|
158
144
|
script_validate(doc)
|
159
|
-
stage_validate(doc)
|
160
|
-
substage_validate(doc)
|
161
145
|
iteration_validate(doc)
|
162
146
|
end
|
163
147
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-iso
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-standoc
|