metanorma-ogc 2.2.0 → 2.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +1 -1
- data/.github/workflows/release.yml +24 -0
- data/lib/isodoc/ogc/html/htmlstyle.scss +1 -1
- data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +128 -153
- data/lib/isodoc/ogc/ogc.best-practice.xsl +128 -153
- data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +128 -153
- data/lib/isodoc/ogc/ogc.community-practice.xsl +128 -153
- data/lib/isodoc/ogc/ogc.community-standard.xsl +128 -153
- data/lib/isodoc/ogc/ogc.discussion-paper.xsl +128 -153
- data/lib/isodoc/ogc/ogc.engineering-report.xsl +128 -153
- data/lib/isodoc/ogc/ogc.other.xsl +128 -153
- data/lib/isodoc/ogc/ogc.policy.xsl +128 -153
- data/lib/isodoc/ogc/ogc.reference-model.xsl +128 -153
- data/lib/isodoc/ogc/ogc.release-notes.xsl +128 -153
- data/lib/isodoc/ogc/ogc.standard.xsl +128 -153
- data/lib/isodoc/ogc/ogc.test-suite.xsl +128 -153
- data/lib/isodoc/ogc/ogc.user-guide.xsl +128 -153
- data/lib/isodoc/ogc/ogc.white-paper.xsl +128 -153
- data/lib/isodoc/ogc/presentation_xml_convert.rb +7 -12
- data/lib/isodoc/ogc/xref.rb +0 -125
- data/lib/metanorma/ogc/biblio.rng +8 -5
- data/lib/metanorma/ogc/cleanup.rb +68 -97
- data/lib/metanorma/ogc/converter.rb +4 -10
- data/lib/metanorma/ogc/validate.rb +0 -45
- data/lib/metanorma/ogc/version.rb +1 -1
- data/lib/metanorma-ogc.rb +2 -1
- data/lib/relaton/render/config.yml +27 -3
- data/metanorma-ogc.gemspec +2 -0
- metadata +35 -14
- data/lib/isodoc/ogc/html/_coverpage.css +0 -205
- data/lib/isodoc/ogc/html/htmlstyle.css +0 -1149
- data/lib/isodoc/ogc/html/ogc.css +0 -861
- data/lib/isodoc/ogc/html/ogc_wp.css +0 -774
- data/lib/isodoc/ogc/html/wordstyle.css +0 -1344
- data/lib/isodoc/ogc/html/wordstyle_wp.css +0 -1270
- data/lib/isodoc/ogc/reqt.rb +0 -215
- data/lib/isodoc/ogc/reqt_helper.rb +0 -83
data/lib/isodoc/ogc/xref.rb
CHANGED
@@ -4,131 +4,6 @@ module IsoDoc
|
|
4
4
|
end
|
5
5
|
|
6
6
|
class Xref < IsoDoc::Xref
|
7
|
-
def initialize(lang, script, klass, labels, options)
|
8
|
-
@reqtlabels = {}
|
9
|
-
super
|
10
|
-
end
|
11
|
-
|
12
|
-
def reqtlabels
|
13
|
-
@reqtlabels
|
14
|
-
end
|
15
|
-
|
16
|
-
FIRST_LVL_REQ = IsoDoc::XrefGen::Blocks::FIRST_LVL_REQ
|
17
|
-
|
18
|
-
def sequential_permission_names(clause, klass, label)
|
19
|
-
c = Counter.new
|
20
|
-
clause.xpath(ns(".//#{klass}#{FIRST_LVL_REQ}")).each do |t|
|
21
|
-
next if t["id"].nil? || t["id"].empty?
|
22
|
-
|
23
|
-
id = c.increment(t).print
|
24
|
-
@anchors[t["id"]] = anchor_struct(id, t, label, klass,
|
25
|
-
t["unnumbered"])
|
26
|
-
reqt_suffix_label(t)
|
27
|
-
permission_parts(t, label, klass)
|
28
|
-
sequential_permission_children(t, id)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def req_class_paths
|
33
|
-
{ "class" => "@type = 'class'",
|
34
|
-
"test" => "@type = 'verification'",
|
35
|
-
"" => "not(@type = 'verification' or @type = 'class' or "\
|
36
|
-
"@type = 'abstracttest' or @type = 'conformanceclass')" }
|
37
|
-
end
|
38
|
-
|
39
|
-
def req_class_paths2
|
40
|
-
{ "abstracttest" => "@type = 'abstracttest'",
|
41
|
-
"conformanceclass" => "@type = 'conformanceclass'" }
|
42
|
-
end
|
43
|
-
|
44
|
-
def reqt_suffix_label(reqt)
|
45
|
-
if l = reqt.at(ns("./label"))&.text
|
46
|
-
@reqtlabels[l] = reqt["id"]
|
47
|
-
@anchors[reqt["id"]][:xref] += ": <tt>#{l}</tt>"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def permission_parts(block, label, klass)
|
52
|
-
block.xpath(ns("./component[@class = 'part']"))
|
53
|
-
.each_with_index do |c, i|
|
54
|
-
next if c["id"].nil? || c["id"].empty?
|
55
|
-
|
56
|
-
@anchors[c["id"]] = anchor_struct((i + "A".ord).chr.to_s, c, label,
|
57
|
-
klass, c["unnumbered"])
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
REQS = %w(permission requirement recommendation).freeze
|
62
|
-
|
63
|
-
def sequential_permission_children(block, idx)
|
64
|
-
req_class_paths.each do |k, v|
|
65
|
-
REQS.each do |r|
|
66
|
-
sequential_permission_names1(block, idx, "#{r}[#{v}]",
|
67
|
-
@labels["#{r}#{k}"])
|
68
|
-
end
|
69
|
-
end
|
70
|
-
req_class_paths2.each do |k, v|
|
71
|
-
sequential_permission_names1(block, idx, "*[#{v}]", @labels[k])
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
def sequential_permission_names1(block, lbl, klass, label)
|
76
|
-
c = Counter.new
|
77
|
-
block.xpath(ns("./#{klass}")).each do |t|
|
78
|
-
next if t["id"].nil? || t["id"].empty?
|
79
|
-
|
80
|
-
id = "#{lbl}#{hierfigsep}#{c.increment(t).print}"
|
81
|
-
@anchors[t["id"]] = anchor_struct(id, t, label, klass,
|
82
|
-
t["unnumbered"])
|
83
|
-
permission_parts(t, label, klass)
|
84
|
-
sequential_permission_children(t, id)
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def sequential_asset_names(clause)
|
89
|
-
sequential_table_names(clause)
|
90
|
-
sequential_figure_names(clause)
|
91
|
-
sequential_formula_names(clause)
|
92
|
-
req_class_paths.each do |k, v|
|
93
|
-
REQS.each do |r|
|
94
|
-
sequential_permission_names(clause, "#{r}[#{v}]",
|
95
|
-
@labels["#{r}#{k}"])
|
96
|
-
end
|
97
|
-
end
|
98
|
-
req_class_paths2.each do |k, v|
|
99
|
-
sequential_permission_names(clause, "*[#{v}]", @labels[k])
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
def hierarchical_asset_names(clause, num)
|
104
|
-
hierarchical_table_names(clause, num)
|
105
|
-
hierarchical_figure_names(clause, num)
|
106
|
-
hierarchical_formula_names(clause, num)
|
107
|
-
req_class_paths.each do |k, v|
|
108
|
-
REQS.each do |r|
|
109
|
-
hierarchical_permission_names(clause, num, "#{r}[#{v}]",
|
110
|
-
@labels["#{r}#{k}"])
|
111
|
-
end
|
112
|
-
end
|
113
|
-
req_class_paths2.each do |k, v|
|
114
|
-
hierarchical_permission_names(clause, num, "*[#{v}]", @labels[k])
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
def hierarchical_permission_names(clause, num, klass, label)
|
119
|
-
c = Counter.new
|
120
|
-
clause.xpath(ns(".//#{klass}#{FIRST_LVL_REQ}")).each do |t|
|
121
|
-
next if t["id"].nil? || t["id"].empty?
|
122
|
-
|
123
|
-
lbl = "#{num}#{hiersep}#{c.increment(t).print}"
|
124
|
-
@anchors[t["id"]] = anchor_struct(lbl, t, label, klass,
|
125
|
-
t["unnumbered"])
|
126
|
-
reqt_suffix_label(t)
|
127
|
-
permission_parts(t, label, klass)
|
128
|
-
sequential_permission_children(t, lbl)
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
7
|
def initial_anchor_names(doc)
|
133
8
|
if @parse_settings.empty? || @parse_settings[:clauses]
|
134
9
|
preface_anchor_names(doc)
|
@@ -225,9 +225,9 @@
|
|
225
225
|
<zeroOrMore>
|
226
226
|
<ref name="forename"/>
|
227
227
|
</zeroOrMore>
|
228
|
-
<
|
229
|
-
<ref name="
|
230
|
-
</
|
228
|
+
<optional>
|
229
|
+
<ref name="formatted-initials"/>
|
230
|
+
</optional>
|
231
231
|
<ref name="surname"/>
|
232
232
|
<zeroOrMore>
|
233
233
|
<ref name="addition"/>
|
@@ -247,8 +247,8 @@
|
|
247
247
|
<ref name="LocalizedString"/>
|
248
248
|
</element>
|
249
249
|
</define>
|
250
|
-
<define name="
|
251
|
-
<element name="
|
250
|
+
<define name="formatted-initials">
|
251
|
+
<element name="formatted-initials">
|
252
252
|
<ref name="LocalizedString"/>
|
253
253
|
</element>
|
254
254
|
</define>
|
@@ -264,6 +264,9 @@
|
|
264
264
|
</define>
|
265
265
|
<define name="forename">
|
266
266
|
<element name="forename">
|
267
|
+
<optional>
|
268
|
+
<attribute name="initial"/>
|
269
|
+
</optional>
|
267
270
|
<ref name="LocalizedString"/>
|
268
271
|
</element>
|
269
272
|
</define>
|
@@ -85,78 +85,6 @@ module Metanorma
|
|
85
85
|
@i18n&.termsdef, true)
|
86
86
|
end
|
87
87
|
|
88
|
-
def requirement_metadata_component_tags
|
89
|
-
%w(test-purpose test-method test-method-type conditions part description
|
90
|
-
reference step requirement permission recommendation)
|
91
|
-
end
|
92
|
-
|
93
|
-
def requirement_metadata1(reqt, dlist, ins)
|
94
|
-
ins1 = super
|
95
|
-
dlist.xpath("./dt").each do |e|
|
96
|
-
tag = e&.text&.gsub(/ /, "-")&.downcase
|
97
|
-
next unless requirement_metadata_component_tags.include? tag
|
98
|
-
|
99
|
-
ins1.next = requirement_metadata1_component(e, tag)
|
100
|
-
ins1 = ins1.next
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
def requirement_metadata1_component(term, tag)
|
105
|
-
val = term.at("./following::dd")
|
106
|
-
val.name = tag
|
107
|
-
val.xpath("./dl").each do |d|
|
108
|
-
requirement_metadata1(val, d, d)
|
109
|
-
d.remove
|
110
|
-
end
|
111
|
-
if %w(requirement permission
|
112
|
-
recommendation).include?(term.text) && !val.text.empty?
|
113
|
-
val["label"] = val.text.strip
|
114
|
-
val.children.remove
|
115
|
-
end
|
116
|
-
val
|
117
|
-
end
|
118
|
-
|
119
|
-
def requirement_metadata(xmldoc)
|
120
|
-
super
|
121
|
-
xmldoc.xpath(REQRECPER).each do |r|
|
122
|
-
requirement_metadata_to_component(r)
|
123
|
-
requirement_metadata_to_requirement(r)
|
124
|
-
requirement_subparts_to_blocks(r)
|
125
|
-
requirement_target_identifiers(r)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
def requirement_target_identifiers(reqt)
|
130
|
-
reqt.xpath("./classification[tag = 'target']/value[link]").each do |v|
|
131
|
-
v.children = v.at("./link/@target").text
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
def requirement_metadata_to_component(reqt)
|
136
|
-
reqt.xpath(".//test-method | .//test-purpose | .//conditions | "\
|
137
|
-
".//part | .//test-method-type | .//step | .//reference")
|
138
|
-
.each do |c|
|
139
|
-
c["class"] = c.name
|
140
|
-
c.name = "component"
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
def requirement_metadata_to_requirement(reqt)
|
145
|
-
reqt.xpath("./requirement | ./permission | ./recommendation")
|
146
|
-
.each do |c|
|
147
|
-
c["id"] = Metanorma::Utils::anchor_or_uuid
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
def requirement_subparts_to_blocks(reqt)
|
152
|
-
reqt.xpath(".//component | .//description").each do |c|
|
153
|
-
next if %w(p ol ul dl table component description)
|
154
|
-
.include?(c&.elements&.first&.name)
|
155
|
-
|
156
|
-
c.children = "<p>#{c.children.to_xml}</p>"
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
88
|
def termdef_cleanup(xmldoc)
|
161
89
|
super
|
162
90
|
termdef_subclause_cleanup(xmldoc)
|
@@ -172,31 +100,6 @@ module Metanorma
|
|
172
100
|
end
|
173
101
|
end
|
174
102
|
|
175
|
-
def requirement_cleanup(xmldoc)
|
176
|
-
requirement_type(xmldoc)
|
177
|
-
super
|
178
|
-
end
|
179
|
-
|
180
|
-
def requirement_type(xmldoc)
|
181
|
-
xmldoc.xpath(REQRECPER).each do |r|
|
182
|
-
next unless r["type"]
|
183
|
-
|
184
|
-
requirement_type1(r)
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
188
|
-
def requirement_type1(reqt)
|
189
|
-
reqt["type"] = case reqt["type"]
|
190
|
-
when "requirement", "recommendation", "permission"
|
191
|
-
"general"
|
192
|
-
when "requirements_class" then "class"
|
193
|
-
when "conformance_test" then "verification"
|
194
|
-
when "conformance_class" then "conformanceclass"
|
195
|
-
when "abstract_test" then "abstracttest"
|
196
|
-
else reqt["type"]
|
197
|
-
end
|
198
|
-
end
|
199
|
-
|
200
103
|
def normref_cleanup(xmldoc)
|
201
104
|
r1 = xmldoc.at("//references[title[translate(text(), 'R', 'r') = "\
|
202
105
|
"'Normative references']]")
|
@@ -233,6 +136,74 @@ module Metanorma
|
|
233
136
|
last.previous = rev.remove
|
234
137
|
last.remove
|
235
138
|
end
|
139
|
+
|
140
|
+
def sort_biblio(bib)
|
141
|
+
bib.sort do |a, b|
|
142
|
+
sort_biblio_key(a) <=> sort_biblio_key(b)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
PUBLISHER = "./contributor[role/@type = 'publisher']/organization".freeze
|
147
|
+
|
148
|
+
OTHERIDS = "@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or "\
|
149
|
+
"@type = 'ISBN'".freeze
|
150
|
+
|
151
|
+
def pub_class(bib)
|
152
|
+
return 1 if bib.at("#{PUBLISHER}[abbreviation = 'OGC']")
|
153
|
+
return 1 if bib.at("#{PUBLISHER}[name = 'Open Geospatial "\
|
154
|
+
"Consortium']")
|
155
|
+
return 2 if bib.at("./docidentifier[@type][not(#{OTHERIDS})]")
|
156
|
+
|
157
|
+
3
|
158
|
+
end
|
159
|
+
|
160
|
+
# sort by: doc class (OGC, other standard (not DOI &c), other
|
161
|
+
# then standard class (docid class other than DOI &c)
|
162
|
+
# then if OGC, doc title else if other, authors
|
163
|
+
# then docnumber if present, numeric sort
|
164
|
+
# else alphanumeric metanorma id (abbreviation)
|
165
|
+
# then doc part number if present, numeric sort
|
166
|
+
# then doc id (not DOI &c)
|
167
|
+
# then title
|
168
|
+
def sort_biblio_key(bib)
|
169
|
+
pubclass = pub_class(bib)
|
170
|
+
ids = sort_biblio_ids_key(bib)
|
171
|
+
title = title_key(bib)
|
172
|
+
sortkey3 = author_title_key(pubclass, title, bib)
|
173
|
+
num = if ids[:num].nil? then ids[:abbrid]
|
174
|
+
else sprintf("%09d", ids[:num].to_i)
|
175
|
+
end
|
176
|
+
"#{pubclass} :: #{ids[:type]} :: #{sortkey3} :: #{num} :: "\
|
177
|
+
"#{sprintf('%09d', ids[:partid])} :: #{ids[:id]} :: #{title}"
|
178
|
+
end
|
179
|
+
|
180
|
+
def author_title_key(pubclass, title, bib)
|
181
|
+
case pubclass
|
182
|
+
when 1, 2 then title
|
183
|
+
when 3
|
184
|
+
cite = ::Relaton::Render::General.new
|
185
|
+
.render_all("<references>#{bib.to_xml}</references>")
|
186
|
+
cite[:author]
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
def title_key(bib)
|
191
|
+
title = bib.at("./title[@type = 'main']") ||
|
192
|
+
bib.at("./title") || bib.at("./formattedref")
|
193
|
+
title&.text&.sub!(/^(OGC|Open Geospatial Consortium)\b/, "")
|
194
|
+
end
|
195
|
+
|
196
|
+
def sort_biblio_ids_key(bib)
|
197
|
+
id = bib.at("./docidentifier[@primary]") ||
|
198
|
+
bib.at("./docidentifier[not(#{OTHERIDS})]")
|
199
|
+
metaid = bib.at("./docidentifier[@type = 'metanorma']")&.text
|
200
|
+
/\d-(?<partid>\d+)/ =~ id&.text
|
201
|
+
{ id: id&.text,
|
202
|
+
num: bib.at("./docnumber")&.text,
|
203
|
+
abbrid: /^\[\d+\]$/.match?(metaid) ? metaid : nil,
|
204
|
+
partid: partid&.to_i || 0,
|
205
|
+
type: id ? id["type"] : nil }
|
206
|
+
end
|
236
207
|
end
|
237
208
|
end
|
238
209
|
end
|
@@ -26,6 +26,10 @@ module Metanorma
|
|
26
26
|
# ignore, we generate ToC outside of asciidoctor
|
27
27
|
def toc(value); end
|
28
28
|
|
29
|
+
def default_requirement_model
|
30
|
+
"ogc"
|
31
|
+
end
|
32
|
+
|
29
33
|
def makexml(node)
|
30
34
|
@draft = node.attributes.has_key?("draft")
|
31
35
|
super
|
@@ -131,16 +135,6 @@ module Metanorma
|
|
131
135
|
xml.hi { |s| s << text }
|
132
136
|
end
|
133
137
|
|
134
|
-
def example(node)
|
135
|
-
role = node.role || node.attr("style")
|
136
|
-
if %w(requirements_class conformance_test conformance_class
|
137
|
-
abstract_test).include?(role)
|
138
|
-
node.set_attr("type", role)
|
139
|
-
return requirement(node, "requirement")
|
140
|
-
end
|
141
|
-
super
|
142
|
-
end
|
143
|
-
|
144
138
|
def set_obligation(attrs, node)
|
145
139
|
if node.attr("style") == "appendix" && node.level == 1
|
146
140
|
attrs[:obligation] = if node.attributes.has_key?("obligation")
|
@@ -14,51 +14,6 @@ module Metanorma
|
|
14
14
|
def content_validate(doc)
|
15
15
|
super
|
16
16
|
bibdata_validate(doc.root)
|
17
|
-
reqt_link_validate(doc.root)
|
18
|
-
end
|
19
|
-
|
20
|
-
def reqt_link_validate(docxml)
|
21
|
-
ids = reqt_links(docxml)
|
22
|
-
reqt_to_conformance(ids, "general", "verification", "Requirement",
|
23
|
-
"Conformance test")
|
24
|
-
reqt_to_conformance(ids, "class", "conformanceclass",
|
25
|
-
"Requirement class", "Conformance class test")
|
26
|
-
conformance_to_reqt(ids, "general", "verification", "Requirement",
|
27
|
-
"Conformance test")
|
28
|
-
conformance_to_reqt(ids, "class", "conformanceclass",
|
29
|
-
"Requirement class", "Conformance class test")
|
30
|
-
end
|
31
|
-
|
32
|
-
def reqt_to_conformance(ids, reqtclass, confclass, reqtlabel, conflabel)
|
33
|
-
ids[reqtclass]&.each do |r|
|
34
|
-
(r[:label] && ids[confclass]&.any? do |x|
|
35
|
-
x[:subject] == r[:label]
|
36
|
-
end) or
|
37
|
-
@log.add("Requirements", r[:elem],
|
38
|
-
"#{reqtlabel} #{r[:label] || r[:id]} "\
|
39
|
-
"has no corresponding #{conflabel}")
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
def conformance_to_reqt(ids, reqtclass, confclass, reqtlabel, conflabel)
|
44
|
-
ids[confclass]&.each do |x|
|
45
|
-
(x[:subject] && ids[reqtclass]&.any? do |r|
|
46
|
-
x[:subject] == r[:label]
|
47
|
-
end) or
|
48
|
-
@log.add("Requirements", x[:elem],
|
49
|
-
"#{conflabel} #{x[:label] || x[:id]} "\
|
50
|
-
"has no corresponding #{reqtlabel}")
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
def reqt_links(docxml)
|
55
|
-
docxml.xpath("//requirement | //recommendation | //permission")
|
56
|
-
.each_with_object({}) do |r, m|
|
57
|
-
type = r["type"] || "general"
|
58
|
-
m[type] ||= []
|
59
|
-
m[type] << { id: r["id"], elem: r, label: r.at("./identifier")&.text,
|
60
|
-
subject: r.at("./classification[tag = 'target']/value")&.text }
|
61
|
-
end
|
62
17
|
end
|
63
18
|
|
64
19
|
def bibdata_validate(doc)
|
data/lib/metanorma-ogc.rb
CHANGED
@@ -3,8 +3,32 @@ template:
|
|
3
3
|
standard: "{% if creatornames %}{{ creatornames }} ({{role}}){%else%}{{ publisher_abbrev}}{%endif%} : {{standardidentifier|first}} {{draft}} , <em>{{ title }}</em>. {{ publisher }}{%if place%},{%endif%} {{ place }} ({{date}}). {{uri}}."
|
4
4
|
misc: standard
|
5
5
|
techreport: standard
|
6
|
+
book: "{{ creatornames }} ({{role}}) : <em>{{ title }}</em> . {{ publisher }}, {% if place %}{{place}}{%else%}{{ labels['no_place']}}{%endif%} ({{date}})."
|
7
|
+
booklet: book
|
8
|
+
manual: book
|
9
|
+
proceedings: book
|
10
|
+
software: book
|
11
|
+
electronic resource: book
|
12
|
+
website: book
|
13
|
+
webresource: book
|
14
|
+
unpublished: book
|
15
|
+
presentation: book
|
16
|
+
inbook: "{{ creatornames }} ({{role}}) : {{ title }} . {{ labels['in'] | capitalize }}: {{ host_creatornames}} ({{ host_role}}) : <em>{{host_title}}</em>. {{ extent}}. {{ publisher }}{%if place%},{%endif%} {{ place }} . ({{date}})."
|
17
|
+
inproceedings: inbook
|
18
|
+
incollection: inbook
|
19
|
+
journal: "<em>{{ title}}</em> . {{ publisher }}{%if place%},{%endif%} {{ place }} . ({{date}})."
|
20
|
+
article: "{{ creatornames }} ({{role}}) : {{ title }}. {{ series }} {{ extent }} ({{date}})."
|
6
21
|
nametemplate:
|
7
|
-
one: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] }} {{initials[0]}}{% endif %}"
|
8
|
-
two: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] }} {{initials[0]}}{% endif %} , {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{surname[1]}} {{ initials[1]}}{% endif %}"
|
9
|
-
more: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] }} {{initials[0]}} {% endif %} , {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{surname[1]}} {{ initials[1]}} {% endif %} , {% if nonpersonal[2] %}{{ nonpersonal[2] }}{% else %}{{surname[2]}} {{initials[2]}}{% endif %}"
|
22
|
+
one: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] }} {{initials[0] | join: '' | remove: '.' | remove: '_' }}{% endif %}"
|
23
|
+
two: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] }} {{initials[0] | join: '' | remove: '.' | remove: '_' }}{% endif %} , {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{surname[1]}} {{ initials[1] | join: '' | remove: '.' | remove: '_' }}{% endif %}"
|
24
|
+
more: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] }} {{initials[0] | join: '' | remove: '.' | remove: '_' }} {% endif %} , {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{surname[1]}} {{ initials[1] | join: '' | remove: '.' | remove: '_' }} {% endif %} , {% if nonpersonal[2] %}{{ nonpersonal[2] }}{% else %}{{surname[2]}} {{initials[2] | join: '' | remove: '.' | remove: '_'}}{% endif %}"
|
25
|
+
extenttemplate:
|
26
|
+
book: "{{ volume }}, {{ page }}"
|
27
|
+
booklet: book
|
28
|
+
proceedings: book
|
29
|
+
journal: book
|
30
|
+
standard: book
|
31
|
+
techreport: book
|
32
|
+
inbook: "{{ volume }}: {{ page }}"
|
33
|
+
misc: "{{ volume }} ({{issue}}) , {{ page }}, {{ duration }}"
|
10
34
|
|
data/metanorma-ogc.gemspec
CHANGED
@@ -37,4 +37,6 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.add_development_dependency "sassc", "2.4.0"
|
38
38
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
39
39
|
spec.add_development_dependency "timecop", "~> 0.9"
|
40
|
+
spec.add_development_dependency "vcr", "~> 6.1.0"
|
41
|
+
spec.add_development_dependency "webmock"
|
40
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-ogc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: iso-639
|
@@ -178,6 +178,34 @@ dependencies:
|
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0.9'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: vcr
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 6.1.0
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 6.1.0
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: webmock
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
181
209
|
description: 'Metanorma for the Open Geospatial Consortium.
|
182
210
|
|
183
211
|
'
|
@@ -188,6 +216,7 @@ extensions: []
|
|
188
216
|
extra_rdoc_files: []
|
189
217
|
files:
|
190
218
|
- ".github/workflows/rake.yml"
|
219
|
+
- ".github/workflows/release.yml"
|
191
220
|
- ".gitignore"
|
192
221
|
- ".hound.yml"
|
193
222
|
- ".rubocop.yml"
|
@@ -202,28 +231,22 @@ files:
|
|
202
231
|
- lib/isodoc/ogc.rb
|
203
232
|
- lib/isodoc/ogc/base_convert.rb
|
204
233
|
- lib/isodoc/ogc/biblio.rb
|
205
|
-
- lib/isodoc/ogc/html/_coverpage.css
|
206
234
|
- lib/isodoc/ogc/html/_coverpage.scss
|
207
235
|
- lib/isodoc/ogc/html/header.html
|
208
236
|
- lib/isodoc/ogc/html/header_wp.html
|
209
237
|
- lib/isodoc/ogc/html/html_ogc_intro.html
|
210
238
|
- lib/isodoc/ogc/html/html_ogc_titlepage.html
|
211
|
-
- lib/isodoc/ogc/html/htmlstyle.css
|
212
239
|
- lib/isodoc/ogc/html/htmlstyle.scss
|
213
240
|
- lib/isodoc/ogc/html/logo.2021.svg
|
214
241
|
- lib/isodoc/ogc/html/logo.png
|
215
|
-
- lib/isodoc/ogc/html/ogc.css
|
216
242
|
- lib/isodoc/ogc/html/ogc.scss
|
217
|
-
- lib/isodoc/ogc/html/ogc_wp.css
|
218
243
|
- lib/isodoc/ogc/html/ogc_wp.scss
|
219
244
|
- lib/isodoc/ogc/html/scripts.html
|
220
245
|
- lib/isodoc/ogc/html/word_ogc_intro.html
|
221
246
|
- lib/isodoc/ogc/html/word_ogc_intro_wp.html
|
222
247
|
- lib/isodoc/ogc/html/word_ogc_titlepage.html
|
223
248
|
- lib/isodoc/ogc/html/word_ogc_titlepage_wp.html
|
224
|
-
- lib/isodoc/ogc/html/wordstyle.css
|
225
249
|
- lib/isodoc/ogc/html/wordstyle.scss
|
226
|
-
- lib/isodoc/ogc/html/wordstyle_wp.css
|
227
250
|
- lib/isodoc/ogc/html/wordstyle_wp.scss
|
228
251
|
- lib/isodoc/ogc/html_convert.rb
|
229
252
|
- lib/isodoc/ogc/i18n-en.yaml
|
@@ -247,8 +270,6 @@ files:
|
|
247
270
|
- lib/isodoc/ogc/ogc.white-paper.xsl
|
248
271
|
- lib/isodoc/ogc/pdf_convert.rb
|
249
272
|
- lib/isodoc/ogc/presentation_xml_convert.rb
|
250
|
-
- lib/isodoc/ogc/reqt.rb
|
251
|
-
- lib/isodoc/ogc/reqt_helper.rb
|
252
273
|
- lib/isodoc/ogc/sections.rb
|
253
274
|
- lib/isodoc/ogc/word_convert.rb
|
254
275
|
- lib/isodoc/ogc/xref.rb
|
@@ -276,7 +297,7 @@ homepage: https://github.com/metanorma/metanorma-ogc
|
|
276
297
|
licenses:
|
277
298
|
- BSD-2-Clause
|
278
299
|
metadata: {}
|
279
|
-
post_install_message:
|
300
|
+
post_install_message:
|
280
301
|
rdoc_options: []
|
281
302
|
require_paths:
|
282
303
|
- lib
|
@@ -291,8 +312,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
291
312
|
- !ruby/object:Gem::Version
|
292
313
|
version: '0'
|
293
314
|
requirements: []
|
294
|
-
rubygems_version: 3.
|
295
|
-
signing_key:
|
315
|
+
rubygems_version: 3.1.6
|
316
|
+
signing_key:
|
296
317
|
specification_version: 4
|
297
318
|
summary: Metanorma for the Open Geospatial Consortium.
|
298
319
|
test_files: []
|