relaton-nist 1.7.0 → 1.8.0

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: 6ff4cb4caf1123510595e7804b6b44a6765d6e8db953e73e97afe038baad2d94
4
- data.tar.gz: 0b7592d2538165dc71ab73a3c7aa709f8b64f78d61d560eded5a700faeac48dd
3
+ metadata.gz: 708aed7e58956fbc6f13f3762f643c8dcd894d71d27019e640adf63b8b8b5215
4
+ data.tar.gz: 55e8c9f4bfd97442aebb7a4ee782f5620fba41b4f89e33f44cf79f60df6c7f95
5
5
  SHA512:
6
- metadata.gz: 0a379a5571e757ae64f6c17c87b21fb9bb4e33145ce4078b78eb25eea8863fc0ff3aeebc5885e35892d312afc2415fd5b72bd9e90583aa000272bd8d211ab4e2
7
- data.tar.gz: 57e44c8738be6f399fa263516d5ed7ad4fce62b1559d8d88bb59950bdc908af866c5e5ab7c3783d9237ed1a7df2fe69496d82c55845b0296bb53bb922d4e65bd
6
+ metadata.gz: 1a13a4b39a41bce75a8ce7d79f741b38954539701d5f2788b0beee850b4ff54e50055c9ab23a79e0df3b40e6e2dbded6cd4155ea227589d34147b1a0524ce99b
7
+ data.tar.gz: 477d2f7d2cd8a3870a469e8e2c5ac12a8c68c3ff96fe0c6fea8bdf903d50c1287d63e0a10b7ca81987db3718330b687f3ebedfed149e6a8ee4e973bd0e03a3cb
@@ -0,0 +1,46 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: rake
4
+
5
+ on:
6
+ push:
7
+ branches: [ master, main ]
8
+ tags: [ v* ]
9
+ pull_request:
10
+
11
+ jobs:
12
+ rake:
13
+ name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
14
+ runs-on: ${{ matrix.os }}
15
+ continue-on-error: ${{ matrix.experimental }}
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ ruby: [ '2.7', '2.6', '2.5', '2.4' ]
20
+ os: [ ubuntu-latest, windows-latest, macos-latest ]
21
+ experimental: [ false ]
22
+ include:
23
+ - ruby: '3.0'
24
+ os: 'ubuntu-latest'
25
+ experimental: true
26
+ - ruby: '3.0'
27
+ os: 'windows-latest'
28
+ experimental: true
29
+ - ruby: '3.0'
30
+ os: 'macos-latest'
31
+ experimental: true
32
+ steps:
33
+ - uses: actions/checkout@v2
34
+ with:
35
+ submodules: true
36
+
37
+ # https://github.com/ruby-debug/debase/issues/89#issuecomment-686827382
38
+ - if: matrix.os == 'macos-latest' && matrix.ruby == '2.5'
39
+ run: echo BUNDLE_BUILD__DEBASE="--with-cflags=\"-Wno-error=implicit-function-declaration\"" >> $GITHUB_ENV
40
+
41
+ - uses: ruby/setup-ruby@v1
42
+ with:
43
+ ruby-version: ${{ matrix.ruby }}
44
+ bundler-cache: true
45
+
46
+ - run: bundle exec rake
data/README.adoc CHANGED
@@ -91,11 +91,14 @@ RelatonNist::NistBibliography.get("8200", "2018", {})
91
91
  === Get short citation
92
92
  Short citation is a convetion about a citation's format. The format for NIST publications is:
93
93
  ----
94
- NIST {abbrev(series)} {docnumber} {(edition), optional} {(stage), optioal}
94
+ NIST {abbrev(series)} {docnumber} {(edition), optional} {(stage), optional}
95
95
  # or
96
- {abbrev(series)} {docnumber} {(edition), optional} {(stage), optioal}
96
+ {abbrev(series)} {docnumber} {(edition), optional} {(stage), optional}
97
97
  ----
98
- - `(stage)` is empty if the state is "final" (published)
98
+ - `(stage)` is empty if the state is "final" (published). In case state is "draft" it shoud be:
99
+ * PD for public draft
100
+ * IPD for initial iteration public draft or 2PD, 3PD and so one for following iterations
101
+ * FPD for final public draft
99
102
  - `(edition)` is the date of publication or update
100
103
  - `docnumber` is the full NIST number, including revision, e.g., 800-52
101
104
 
@@ -114,6 +117,36 @@ RelatonNist::NistBibliography.get("SP 800-205 (February 2019) (PD)")
114
117
  ...
115
118
  ----
116
119
 
120
+ === Get specific part, volume, version, revision, and addendum
121
+
122
+ Referehces can contain optional parameters `{ptN}{vN}{verN}{rN}{/Add}`:
123
+ - Part is specified as `ptN` (SP 800-57pt1)
124
+ - Volume is specified as `vN` (SP 800-60v1)
125
+ - Version is specified as `verN` (SP 800-45ver2)
126
+ - Revision is specified as `rN` (SP 800-40r3)
127
+ - Addendum is specified as `/Add` (SP 800-38A/Add)
128
+
129
+ [source,ruby]
130
+ ----
131
+ item = RelatonNist::NistBibliography.get 'SP 800-67r3'
132
+ [relaton-nist] ("SP 800-67r3") fetching...
133
+ [relaton-nist] ("SP 800-67r3") found SP 800-67 Rev. 3
134
+ => #<RelatonNist::NistBibliographicItem:0x007fd87bbe9460
135
+ ...
136
+
137
+ item.docidentifier.first.id
138
+ => "SP 800-67 Rev. 3"
139
+
140
+ RelatonNist::NistBibliography.get 'SP 800-38A/Add'
141
+ [relaton-nist] ("SP 800-38A/Add") fetching...
142
+ [relaton-nist] ("SP 800-38A/Add") found SP 800-38A-Add
143
+ => #<RelatonNist::NistBibliographicItem:0x007fd88c21d880
144
+ ...
145
+
146
+ item.docidentifier.first.id
147
+ => "SP 800-38A-Add"
148
+ ----
149
+
117
150
  === Create bibliographic item from YAML
118
151
  [source,ruby]
119
152
  ----
@@ -121,11 +154,7 @@ hash = YAML.load_file 'spec/examples/nist_bib_item.yml'
121
154
  => {"id"=>"NISTIR 8011 Vol. 3",
122
155
  ...
123
156
 
124
- bib_hash = RelatonNist::HashConverter.hash_to_bib hash
125
- => {:id=>"NISTIR 8011 Vol. 3",
126
- ...
127
-
128
- RelatonNist::NistBibliographicItem.new bib_hash
157
+ RelatonNist::NistBibliographicItem.from_hash hash
129
158
  => #<RelatonNist::NistBibliographicItem:0x007f8b708505b8
130
159
  ...
131
160
  ----
@@ -1,9 +1,10 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
- <include href="biblio.rng"/>
4
- <start>
5
- <ref name="document"/>
6
- </start>
3
+ <include href="biblio.rng">
4
+ <start>
5
+ <ref name="document"/>
6
+ </start>
7
+ </include>
7
8
  <define name="document">
8
9
  <element name="document">
9
10
  <optional>
@@ -43,13 +44,16 @@
43
44
  </attribute>
44
45
  </optional>
45
46
  <optional>
46
- <ref name="section-title"/>
47
+ <attribute name="language"/>
47
48
  </optional>
48
49
  <optional>
49
- <ref name="BasicBlock"/>
50
+ <attribute name="script"/>
51
+ </optional>
52
+ <optional>
53
+ <ref name="section-title"/>
50
54
  </optional>
51
55
  <zeroOrMore>
52
- <ref name="note"/>
56
+ <ref name="BasicBlock"/>
53
57
  </zeroOrMore>
54
58
  </define>
55
59
  <define name="references">
@@ -92,6 +96,10 @@
92
96
  <ref name="example"/>
93
97
  <ref name="review"/>
94
98
  <ref name="pre"/>
99
+ <ref name="note"/>
100
+ <ref name="pagebreak"/>
101
+ <ref name="hr"/>
102
+ <ref name="bookmark"/>
95
103
  </choice>
96
104
  </define>
97
105
  <define name="paragraph">
@@ -188,6 +196,14 @@
188
196
  <data type="boolean"/>
189
197
  </attribute>
190
198
  </optional>
199
+ <optional>
200
+ <attribute name="subsequence"/>
201
+ </optional>
202
+ <optional>
203
+ <attribute name="inequality">
204
+ <data type="boolean"/>
205
+ </attribute>
206
+ </optional>
191
207
  <ref name="stem"/>
192
208
  <optional>
193
209
  <ref name="dl"/>
@@ -241,6 +257,9 @@
241
257
  <data type="boolean"/>
242
258
  </attribute>
243
259
  </optional>
260
+ <optional>
261
+ <attribute name="subsequence"/>
262
+ </optional>
244
263
  <optional>
245
264
  <attribute name="lang"/>
246
265
  </optional>
@@ -266,6 +285,9 @@
266
285
  <attribute name="id">
267
286
  <data type="ID"/>
268
287
  </attribute>
288
+ <optional>
289
+ <attribute name="alt"/>
290
+ </optional>
269
291
  <optional>
270
292
  <ref name="tname"/>
271
293
  </optional>
@@ -285,9 +307,15 @@
285
307
  <data type="boolean"/>
286
308
  </attribute>
287
309
  </optional>
310
+ <optional>
311
+ <attribute name="subsequence"/>
312
+ </optional>
288
313
  <optional>
289
314
  <attribute name="alt"/>
290
315
  </optional>
316
+ <optional>
317
+ <attribute name="summary"/>
318
+ </optional>
291
319
  <optional>
292
320
  <attribute name="uri">
293
321
  <data type="anyURI"/>
@@ -313,12 +341,16 @@
313
341
  </define>
314
342
  <define name="tname">
315
343
  <element name="name">
316
- <text/>
317
- </element>
318
- </define>
319
- <define name="tclass">
320
- <element name="name">
321
- <text/>
344
+ <oneOrMore>
345
+ <choice>
346
+ <ref name="PureTextElement"/>
347
+ <ref name="eref"/>
348
+ <ref name="stem"/>
349
+ <ref name="keyword"/>
350
+ <ref name="xref"/>
351
+ <ref name="hyperlink"/>
352
+ </choice>
353
+ </oneOrMore>
322
354
  </element>
323
355
  </define>
324
356
  <define name="thead">
@@ -370,6 +402,16 @@
370
402
  </choice>
371
403
  </attribute>
372
404
  </optional>
405
+ <optional>
406
+ <attribute name="valign">
407
+ <choice>
408
+ <value>top</value>
409
+ <value>middle</value>
410
+ <value>bottom</value>
411
+ <value>baseline</value>
412
+ </choice>
413
+ </attribute>
414
+ </optional>
373
415
  <choice>
374
416
  <zeroOrMore>
375
417
  <ref name="TextElement"/>
@@ -397,6 +439,16 @@
397
439
  </choice>
398
440
  </attribute>
399
441
  </optional>
442
+ <optional>
443
+ <attribute name="valign">
444
+ <choice>
445
+ <value>top</value>
446
+ <value>middle</value>
447
+ <value>bottom</value>
448
+ <value>baseline</value>
449
+ </choice>
450
+ </attribute>
451
+ </optional>
400
452
  <choice>
401
453
  <zeroOrMore>
402
454
  <ref name="TextElement"/>
@@ -417,6 +469,12 @@
417
469
  <data type="boolean"/>
418
470
  </attribute>
419
471
  </optional>
472
+ <optional>
473
+ <attribute name="subsequence"/>
474
+ </optional>
475
+ <optional>
476
+ <ref name="tname"/>
477
+ </optional>
420
478
  <oneOrMore>
421
479
  <choice>
422
480
  <ref name="formula"/>
@@ -481,17 +539,25 @@
481
539
  </attribute>
482
540
  </optional>
483
541
  <optional>
484
- <ref name="source"/>
542
+ <attribute name="subsequence"/>
485
543
  </optional>
486
544
  <optional>
487
- <ref name="tname"/>
545
+ <attribute name="class"/>
488
546
  </optional>
489
547
  <optional>
490
- <ref name="tclass"/>
548
+ <ref name="source"/>
549
+ </optional>
550
+ <optional>
551
+ <ref name="tname"/>
491
552
  </optional>
492
553
  <choice>
493
554
  <ref name="image"/>
555
+ <ref name="video"/>
556
+ <ref name="audio"/>
494
557
  <ref name="pre"/>
558
+ <oneOrMore>
559
+ <ref name="paragraph-with-footnote"/>
560
+ </oneOrMore>
495
561
  <zeroOrMore>
496
562
  <ref name="figure"/>
497
563
  </zeroOrMore>
@@ -529,6 +595,8 @@
529
595
  <ref name="pagebreak"/>
530
596
  <ref name="bookmark"/>
531
597
  <ref name="image"/>
598
+ <ref name="index"/>
599
+ <ref name="index-xref"/>
532
600
  </choice>
533
601
  </define>
534
602
  <define name="PureTextElement">
@@ -553,14 +621,20 @@
553
621
  <define name="em">
554
622
  <element name="em">
555
623
  <zeroOrMore>
556
- <ref name="PureTextElement"/>
624
+ <choice>
625
+ <ref name="PureTextElement"/>
626
+ <ref name="stem"/>
627
+ </choice>
557
628
  </zeroOrMore>
558
629
  </element>
559
630
  </define>
560
631
  <define name="strong">
561
632
  <element name="strong">
562
633
  <zeroOrMore>
563
- <ref name="PureTextElement"/>
634
+ <choice>
635
+ <ref name="PureTextElement"/>
636
+ <ref name="stem"/>
637
+ </choice>
564
638
  </zeroOrMore>
565
639
  </element>
566
640
  </define>
@@ -653,6 +727,65 @@
653
727
  <empty/>
654
728
  </element>
655
729
  </define>
730
+ <define name="index">
731
+ <element name="index">
732
+ <optional>
733
+ <attribute name="to">
734
+ <data type="IDREF"/>
735
+ </attribute>
736
+ </optional>
737
+ <element name="primary">
738
+ <oneOrMore>
739
+ <ref name="PureTextElement"/>
740
+ </oneOrMore>
741
+ </element>
742
+ <optional>
743
+ <element name="secondary">
744
+ <oneOrMore>
745
+ <ref name="PureTextElement"/>
746
+ </oneOrMore>
747
+ </element>
748
+ </optional>
749
+ <optional>
750
+ <element name="tertiary">
751
+ <oneOrMore>
752
+ <ref name="PureTextElement"/>
753
+ </oneOrMore>
754
+ </element>
755
+ </optional>
756
+ </element>
757
+ </define>
758
+ <define name="index-xref">
759
+ <element name="index-xref">
760
+ <attribute name="also">
761
+ <data type="boolean"/>
762
+ </attribute>
763
+ <element name="primary">
764
+ <oneOrMore>
765
+ <ref name="PureTextElement"/>
766
+ </oneOrMore>
767
+ </element>
768
+ <optional>
769
+ <element name="secondary">
770
+ <oneOrMore>
771
+ <ref name="PureTextElement"/>
772
+ </oneOrMore>
773
+ </element>
774
+ </optional>
775
+ <optional>
776
+ <element name="tertiary">
777
+ <oneOrMore>
778
+ <ref name="PureTextElement"/>
779
+ </oneOrMore>
780
+ </element>
781
+ </optional>
782
+ <element name="target">
783
+ <oneOrMore>
784
+ <ref name="PureTextElement"/>
785
+ </oneOrMore>
786
+ </element>
787
+ </element>
788
+ </define>
656
789
  <!-- bare ID element, used for referencing arbitrary spans of text -->
657
790
  <define name="bookmark">
658
791
  <element name="bookmark">
@@ -778,6 +911,9 @@
778
911
  <optional>
779
912
  <attribute name="alt"/>
780
913
  </optional>
914
+ <optional>
915
+ <attribute name="title"/>
916
+ </optional>
781
917
  <optional>
782
918
  <attribute name="longdesc">
783
919
  <data type="anyURI"/>
@@ -786,7 +922,7 @@
786
922
  </element>
787
923
  </define>
788
924
  <define name="video">
789
- <element name="image">
925
+ <element name="video">
790
926
  <attribute name="id">
791
927
  <data type="ID"/>
792
928
  </attribute>
@@ -816,6 +952,9 @@
816
952
  <optional>
817
953
  <attribute name="alt"/>
818
954
  </optional>
955
+ <optional>
956
+ <attribute name="title"/>
957
+ </optional>
819
958
  <optional>
820
959
  <attribute name="longdesc">
821
960
  <data type="anyURI"/>
@@ -827,7 +966,7 @@
827
966
  </element>
828
967
  </define>
829
968
  <define name="audio">
830
- <element name="image">
969
+ <element name="audio">
831
970
  <attribute name="id">
832
971
  <data type="ID"/>
833
972
  </attribute>
@@ -841,6 +980,9 @@
841
980
  <optional>
842
981
  <attribute name="alt"/>
843
982
  </optional>
983
+ <optional>
984
+ <attribute name="title"/>
985
+ </optional>
844
986
  <optional>
845
987
  <attribute name="longdesc">
846
988
  <data type="anyURI"/>
@@ -925,6 +1067,9 @@
925
1067
  <value>alphabet_upper</value>
926
1068
  </choice>
927
1069
  </attribute>
1070
+ <optional>
1071
+ <attribute name="start"/>
1072
+ </optional>
928
1073
  <oneOrMore>
929
1074
  <ref name="li"/>
930
1075
  </oneOrMore>