metanorma-nist 1.0.4 → 1.0.5

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: 9be11fbdb11ce260e1671031d3c1d3f463d0cfbc049b32dd36d362eeae5163bd
4
- data.tar.gz: 346ed9adb971cb651e22b84f335ed6c1a75ec9f3ac4793300972375afe86d634
3
+ metadata.gz: f758b64420197c62c491fb933d62fe0dde91fec5d9955d83e830a474160bfed0
4
+ data.tar.gz: 5b37fe1074ed0d62720af6e88dd08ffca4cb0c1f6eb1aeb256653e53c56c632e
5
5
  SHA512:
6
- metadata.gz: 5a4b107d57c4a7ba95ad1f57c7fa25626819836cd312ed2693fc1da97b67e636613549ff4631ffc76ae7e5f8c51b8578eaa764f7ba38fba496261606d397c6fa
7
- data.tar.gz: 3a022940e4cbad44ac9f1f400697f03815a87c131a1c7d9d651c2ef6ece75ba768dc9dc8e2fc2c1ea008918c99904a2972678bcab4f799b5c108aebeab0f2aa2
6
+ metadata.gz: 3e4d2b04a0ded879553796a90c5a88ca0b7537020b5b59c0b94823c504e0c8594ac35d5fa299efd454014b8a25c1a891b10c5e0a11847224e83e7f693780b264
7
+ data.tar.gz: 62c4a654c0d35e6e39104be8627d260650e2392e1ce3b61871747ccced61c38cd38a83d05e37073d82c7de320eeeb9b52096fa4ec7bcfaa00f38bf1c57d77af1
data/README.adoc CHANGED
@@ -341,6 +341,12 @@ One or more NIST document that this NIST document standard supersedes; the super
341
341
  document may still remain in effect. Comma delimited.
342
342
  Format is document identifier, e.g. _SP 800-53A Rev. 1_
343
343
 
344
+ NOTE: The distinction between `obsoletes` and `supersedes` is the withdrawal date of the
345
+ original document (`obsoleted-date`); that means that the distinction is predictable given that external information.
346
+ The distinction between `obsoleted-by` and `superseded-by`, in the same way, is made by
347
+ the withdrawal date of the current document. Relaton does not differentiate between the two relations
348
+ for that reason.
349
+
344
350
  `:superseded-by`::
345
351
  One or more corresponding NIST document that this NIST document standard is superseded by;
346
352
  this document may still remain in effect. Comma delimited.
@@ -49,11 +49,17 @@
49
49
  </define>
50
50
  <define name="stage">
51
51
  <element name="stage">
52
+ <optional>
53
+ <attribute name="abbreviation"/>
54
+ </optional>
52
55
  <text/>
53
56
  </element>
54
57
  </define>
55
58
  <define name="substage">
56
59
  <element name="substage">
60
+ <optional>
61
+ <attribute name="abbreviation"/>
62
+ </optional>
57
63
  <text/>
58
64
  </element>
59
65
  </define>
@@ -452,9 +458,14 @@
452
458
  <attribute name="bibitemid">
453
459
  <data type="IDREF"/>
454
460
  </attribute>
455
- <zeroOrMore>
456
- <ref name="locality"/>
457
- </zeroOrMore>
461
+ <choice>
462
+ <zeroOrMore>
463
+ <ref name="locality"/>
464
+ </zeroOrMore>
465
+ <zeroOrMore>
466
+ <ref name="localityStack"/>
467
+ </zeroOrMore>
468
+ </choice>
458
469
  <optional>
459
470
  <ref name="date"/>
460
471
  </optional>
@@ -469,6 +480,25 @@
469
480
  <ref name="BibItemLocality"/>
470
481
  </element>
471
482
  </define>
483
+ <define name="localityStack">
484
+ <element name="localityStack">
485
+ <zeroOrMore>
486
+ <ref name="locality"/>
487
+ </zeroOrMore>
488
+ </element>
489
+ </define>
490
+ <define name="sourceLocality">
491
+ <element name="sourceLocality">
492
+ <ref name="BibItemLocality"/>
493
+ </element>
494
+ </define>
495
+ <define name="sourceLocalityStack">
496
+ <element name="sourceLocalityStack">
497
+ <zeroOrMore>
498
+ <ref name="sourceLocality"/>
499
+ </zeroOrMore>
500
+ </element>
501
+ </define>
472
502
  <define name="BibItemLocality">
473
503
  <attribute name="type">
474
504
  <ref name="LocalityType"/>
@@ -1028,12 +1058,30 @@
1028
1058
  <attribute name="type">
1029
1059
  <ref name="DocRelationType"/>
1030
1060
  </attribute>
1061
+ <optional>
1062
+ <element name="description">
1063
+ <ref name="FormattedString"/>
1064
+ </element>
1065
+ </optional>
1031
1066
  <element name="bibitem">
1032
1067
  <ref name="BibliographicItem"/>
1033
1068
  </element>
1034
- <zeroOrMore>
1035
- <ref name="locality"/>
1036
- </zeroOrMore>
1069
+ <choice>
1070
+ <zeroOrMore>
1071
+ <ref name="locality"/>
1072
+ </zeroOrMore>
1073
+ <zeroOrMore>
1074
+ <ref name="localityStack"/>
1075
+ </zeroOrMore>
1076
+ </choice>
1077
+ <choice>
1078
+ <zeroOrMore>
1079
+ <ref name="sourceLocality"/>
1080
+ </zeroOrMore>
1081
+ <zeroOrMore>
1082
+ <ref name="sourceLocalityStack"/>
1083
+ </zeroOrMore>
1084
+ </choice>
1037
1085
  </element>
1038
1086
  </define>
1039
1087
  <define name="version">
@@ -144,15 +144,21 @@ module Asciidoctor
144
144
  end
145
145
 
146
146
  def relaton_relations
147
- super + %w(obsoletes obsoleted-by supersedes superseded-by)
147
+ super + %w(obsoletes obsoleted-by)
148
148
  end
149
149
 
150
- def metadata_getrelation(node, xml, type)
151
- if type == "obsoleted-by" and node.attr("superseding-status")
150
+ def relaton_relation_descriptions
151
+ super.merge({
152
+ "supersedes" => "obsoletes",
153
+ "superseded-by" => "obsoleted-by",
154
+ })
155
+ end
156
+
157
+ def metadata_getrelation(node, xml, type, desc = nil)
158
+ if type == "obsoleted-by" and desc.nil? and node.attr("superseding-status")
152
159
  metadata_superseding_doc(node, xml)
153
- else
154
- super
155
160
  end
161
+ super
156
162
  end
157
163
 
158
164
  def metadata_superseding_doc(node, xml)
@@ -177,8 +177,8 @@ module IsoDoc
177
177
 
178
178
  def get_linkend(node)
179
179
  link = anchor_linkend(node, docid_l10n(node["target"] || wrap_brackets(node['citeas'])))
180
- link += eref_localities(node.xpath(ns("./locality")), link)
181
- contents = node.children.select { |c| c.name != "locality" }
180
+ link += eref_localities(node.xpath(ns("./locality | ./localityStack")), link)
181
+ contents = node.children.select { |c| %w{locality localityStack}.include? c.name }
182
182
  return link if contents.nil? || contents.empty?
183
183
  Nokogiri::XML::NodeSet.new(node.document, contents).to_xml
184
184
  # so not <origin bibitemid="ISO7301" citeas="ISO 7301">
@@ -105,9 +105,12 @@ span.nistvariable {
105
105
  }
106
106
 
107
107
  .document-type-band {
108
- @include docBand(
109
- $fontFamily: "'Source Sans Pro', sans-serif",
110
- $order: 2, $textLength: 150, $offset: 180px, $color: #7ba812);
108
+ @include docBand($fontFamily: "'Source Sans Pro', sans-serif",
109
+ $order: 2, $offset: 180px, $color: #7ba812);
110
+
111
+ .document-type {
112
+ top: 20px;
113
+ }
111
114
  }
112
115
 
113
116
  #governance-band p.document-type {
@@ -845,7 +845,7 @@ style='width:477.0pt;margin-left:-5.25pt;border-collapse:collapse;border:none;ms
845
845
  padding:0cm 5.4pt 0cm 5.4pt'>
846
846
  <p class="Default"><span lang="EN-US" style='font-size:11.0pt;font-family:"Calibri",sans-serif;
847
847
  mso-ascii-theme-font:major-latin;mso-hansi-theme-font:major-latin;mso-bidi-font-family:
848
- "Times New Roman";color:black;mso-themecolor:text1'>{{ superseding_published_date }}<o:p></o:p></span></p>
848
+ "Times New Roman";color:black;mso-themecolor:text1'>{{ superseding_issued_date }}<o:p></o:p></span></p>
849
849
  </td>
850
850
  </tr>
851
851
  <tr style='mso-yfti-irow:13'>
@@ -147,7 +147,8 @@ module IsoDoc
147
147
 
148
148
  def relations1(ixml, type)
149
149
  ret = []
150
- ixml.xpath(ns("//bibdata/relation[@type = '#{type}']")).each do |x|
150
+ ixml.xpath(ns("//bibdata/relation[@type = '#{type}'][not(xmlns:description)] | "\
151
+ "//bibdata/relation[description = '#{type}']")).each do |x|
151
152
  id = x&.at(ns(".//docidentifier"))&.text and ret << id
152
153
  end
153
154
  ret
@@ -134,7 +134,7 @@ module Iso690Render
134
134
  "book"
135
135
  end
136
136
 
137
- def self.extent1(type, from, to)
137
+ def self.extent2(type, from, to)
138
138
  ret = ""
139
139
  case type
140
140
  when "page" then type = to ? "pp." : "p."
@@ -146,15 +146,31 @@ module Iso690Render
146
146
  ret
147
147
  end
148
148
 
149
- def self.extent(localities)
149
+ def self.extent1(localities)
150
150
  ret = []
151
151
  localities.each do |l|
152
- ret << extent1(l["type"] || "page",
152
+ ret << extent2(l["type"] || "page",
153
153
  l.at("./referenceFrom"), l.at("./referenceTo"))
154
154
  end
155
155
  ret.join(", ")
156
156
  end
157
157
 
158
+ def self.extent(localities)
159
+ ret = []
160
+ ret1 = ""
161
+ localities.each do |l|
162
+ if %w(localityStack).include? l.name
163
+ ret << ret1
164
+ ret1 = ""
165
+ ret << extent1(l.children)
166
+ else
167
+ ret1 += extent1([l])
168
+ end
169
+ end
170
+ ret << ret1
171
+ ret.reject { |c| c.empty? }.join("; ")
172
+ end
173
+
158
174
  def self.draft(doc)
159
175
  return nil unless is_nist(doc)
160
176
  dr = doc&.at("./status/stage")&.text
@@ -228,8 +244,7 @@ module Iso690Render
228
244
  ret += wrap(accessLocation(doc), " At: ", ".")
229
245
  if container
230
246
  ret += wrap(parse(container.at("./bibitem"), true), " In: ", "")
231
- locality = container.xpath("./locality")
232
- locality.empty? and locality = doc.xpath("./extent")
247
+ locality = doc.xpath("./extent")
233
248
  ret += wrap(extent(locality))
234
249
  else
235
250
  ret += wrap(extent(doc.xpath("./extent")))
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module NIST
3
- VERSION = "1.0.4"
3
+ VERSION = "1.0.5"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-nist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.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: 2020-04-03 00:00:00.000000000 Z
11
+ date: 2020-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities