pubid-nist 0.2.2 → 0.2.4
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 +4 -4
- data/lib/pubid/nist/identifier.rb +3 -192
- data/lib/pubid/nist/parsers/default.rb +3 -2
- data/lib/pubid/nist/parsers/{fips_pub.rb → fips.rb} +1 -1
- data/lib/pubid/nist/parsers/nist_sp.rb +10 -4
- data/lib/pubid/nist/renderer.rb +3 -1
- data/lib/pubid/nist/stage.rb +1 -1
- data/lib/pubid/nist/version.rb +1 -1
- data/series.yaml +3 -3
- data/update_codes.yaml +5 -3
- metadata +19 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e7f47e08604ec704f0cf6468e57bf119027caf37ccba4043269374d2e9381a3
|
4
|
+
data.tar.gz: ec580488f65954d7fcbbfff5dd17e0cdc2dc88f7d07cb81d0bada5812beae2fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3c2ec778fb99af9427532d92404c60fef8a4e1f65342ab61b0925ade00849c9e151604e2bc2b3cf2d71877dbad840c017c581036e0dc22b1a307bafd06ae2f4
|
7
|
+
data.tar.gz: 787c614f6716d8cc8044821c1ff90ae1afebbe2731673adef5aef5150fa77a5e8d32d633f7367d2929620578d84ed6b6bb81e39367e422f017704d2b34cc65e0
|
@@ -4,83 +4,6 @@ require "json"
|
|
4
4
|
|
5
5
|
UPDATE_CODES = YAML.load_file(File.join(File.dirname(__FILE__), "../../../update_codes.yaml"))
|
6
6
|
|
7
|
-
REVISION_DESC = {
|
8
|
-
long: ", Revision ",
|
9
|
-
abbrev: ", Rev. ",
|
10
|
-
short: "r",
|
11
|
-
mr: "r",
|
12
|
-
}.freeze
|
13
|
-
|
14
|
-
VERSION_DESC = {
|
15
|
-
long: ", Version ",
|
16
|
-
abbrev: ", Ver. ",
|
17
|
-
short: "ver",
|
18
|
-
mr: "ver",
|
19
|
-
}.freeze
|
20
|
-
|
21
|
-
VOLUME_DESC = {
|
22
|
-
long: ", Volume ",
|
23
|
-
abbrev: ", Vol. ",
|
24
|
-
short: "v",
|
25
|
-
mr: "v",
|
26
|
-
}.freeze
|
27
|
-
|
28
|
-
PART_DESC = {
|
29
|
-
long: " Part ",
|
30
|
-
abbrev: " Pt. ",
|
31
|
-
short: "pt",
|
32
|
-
mr: "pt",
|
33
|
-
}.freeze
|
34
|
-
|
35
|
-
EDITION_DESC = {
|
36
|
-
long: " Edition ",
|
37
|
-
abbrev: " Ed. ",
|
38
|
-
short: "e",
|
39
|
-
mr: "e",
|
40
|
-
}.freeze
|
41
|
-
|
42
|
-
SUPPLEMENT_DESC = {
|
43
|
-
long: " Supplement ",
|
44
|
-
abbrev: " Suppl. ",
|
45
|
-
short: "sup",
|
46
|
-
mr: "sup",
|
47
|
-
}.freeze
|
48
|
-
|
49
|
-
SECTION_DESC = {
|
50
|
-
long: " Section ",
|
51
|
-
abbrev: " Sec. ",
|
52
|
-
short: "sec",
|
53
|
-
mr: "sec",
|
54
|
-
}.freeze
|
55
|
-
|
56
|
-
APPENDIX_DESC = {
|
57
|
-
long: " Appendix ",
|
58
|
-
abbrev: " App. ",
|
59
|
-
short: "app",
|
60
|
-
mr: "app",
|
61
|
-
}.freeze
|
62
|
-
|
63
|
-
ERRATA_DESC = {
|
64
|
-
long: " Errata ",
|
65
|
-
abbrev: " Err. ",
|
66
|
-
short: "err",
|
67
|
-
mr: "err",
|
68
|
-
}.freeze
|
69
|
-
|
70
|
-
INDEX_DESC = {
|
71
|
-
long: " Index ",
|
72
|
-
abbrev: " Index. ",
|
73
|
-
short: "indx",
|
74
|
-
mr: "indx",
|
75
|
-
}.freeze
|
76
|
-
|
77
|
-
INSERT_DESC = {
|
78
|
-
long: " Insert ",
|
79
|
-
abbrev: " Ins. ",
|
80
|
-
short: "ins",
|
81
|
-
mr: "ins",
|
82
|
-
}.freeze
|
83
|
-
|
84
7
|
module Pubid::Nist
|
85
8
|
class Identifier < Pubid::Core::Identifier::Base
|
86
9
|
attr_accessor :serie, :code, :revision, :publisher, :version, :volume,
|
@@ -148,25 +71,11 @@ module Pubid::Nist
|
|
148
71
|
code
|
149
72
|
end
|
150
73
|
|
151
|
-
#
|
152
|
-
|
153
|
-
|
154
|
-
# result += "#{stage&.to_s(format)}"\
|
155
|
-
# " #{code}#{render_part(format)}#{render_edition(format)}"\
|
156
|
-
# "#{render_localities(format)}"\
|
157
|
-
# "#{render_update(format)}#{render_translation(format)}"
|
158
|
-
# result = render_addendum(result, format)
|
159
|
-
#
|
160
|
-
# return result.gsub(" ", ".") if format == :mr
|
161
|
-
#
|
162
|
-
# result
|
163
|
-
# end
|
164
|
-
|
165
|
-
def to_s(format = :short)
|
166
|
-
self.class.get_renderer_class.new(get_params).render(format: format)
|
74
|
+
# @param without_edition [Boolean] render pubid without rendering edition
|
75
|
+
def to_s(format = :short, without_edition: false)
|
76
|
+
self.class.get_renderer_class.new(to_h).render(format: format, without_edition: without_edition)
|
167
77
|
end
|
168
78
|
|
169
|
-
|
170
79
|
def to_json(*args)
|
171
80
|
result = {
|
172
81
|
styles: {
|
@@ -184,104 +93,6 @@ module Pubid::Nist
|
|
184
93
|
result.to_json(*args)
|
185
94
|
end
|
186
95
|
|
187
|
-
def render_serie(format)
|
188
|
-
if serie.to_s(format).include?(publisher.to_s(format))
|
189
|
-
return serie.to_s(format)
|
190
|
-
end
|
191
|
-
|
192
|
-
"#{publisher.to_s(format)} #{serie.to_s(format)}"
|
193
|
-
end
|
194
|
-
|
195
|
-
def render_part(format)
|
196
|
-
result = ""
|
197
|
-
result += "#{VOLUME_DESC[format]}#{volume}" unless volume.nil?
|
198
|
-
result += "#{PART_DESC[format]}#{part}" unless part.nil?
|
199
|
-
result
|
200
|
-
end
|
201
|
-
|
202
|
-
def render_edition(format)
|
203
|
-
result = ""
|
204
|
-
|
205
|
-
result += "#{EDITION_DESC[format]}#{edition.to_s}" unless edition.nil?
|
206
|
-
result += "#{REVISION_DESC[format]}#{revision == '' ? '1' : revision}" if revision
|
207
|
-
result += "#{VERSION_DESC[format]}#{version}" unless version.nil?
|
208
|
-
result
|
209
|
-
end
|
210
|
-
|
211
|
-
def render_localities(format)
|
212
|
-
result = ""
|
213
|
-
result += "#{SUPPLEMENT_DESC[format]}#{supplement}" unless supplement.nil?
|
214
|
-
result += "#{SECTION_DESC[format]}#{section}" unless section.nil?
|
215
|
-
result += "#{APPENDIX_DESC[format]}" unless appendix.nil?
|
216
|
-
result += "#{ERRATA_DESC[format]}" unless errata.nil?
|
217
|
-
result += INDEX_DESC[format] unless index.nil?
|
218
|
-
result += INSERT_DESC[format] unless insert.nil?
|
219
|
-
|
220
|
-
result
|
221
|
-
end
|
222
|
-
|
223
|
-
def render_update(format)
|
224
|
-
return "" if update_year.nil?
|
225
|
-
|
226
|
-
if update_month && update_number.nil?
|
227
|
-
@update_number = "1"
|
228
|
-
end
|
229
|
-
|
230
|
-
if update_year&.length == 2
|
231
|
-
@update_year = "19#{update_year}"
|
232
|
-
end
|
233
|
-
|
234
|
-
if update_number.match?(/\d+/)
|
235
|
-
update_text = update_number
|
236
|
-
update_text += "-#{update_year}" if update_year && !update_year.empty?
|
237
|
-
if update_month
|
238
|
-
date = Date.parse("01/#{update_month}/#{update_year}")
|
239
|
-
update_text += sprintf("%02d", date.month)
|
240
|
-
end
|
241
|
-
else
|
242
|
-
update_text = "1"
|
243
|
-
end
|
244
|
-
|
245
|
-
case format
|
246
|
-
when :long
|
247
|
-
" Update #{update_text}"
|
248
|
-
when :abbrev
|
249
|
-
" Upd. #{update_text}"
|
250
|
-
when :short
|
251
|
-
"/Upd#{update_text}"
|
252
|
-
when :mr
|
253
|
-
".u#{update_text}"
|
254
|
-
end
|
255
|
-
end
|
256
|
-
|
257
|
-
def render_translation(format)
|
258
|
-
return "" if translation.nil?
|
259
|
-
|
260
|
-
case format
|
261
|
-
when :long, :abbrev
|
262
|
-
" (#{translation.upcase})"
|
263
|
-
when :mr
|
264
|
-
".#{translation}"
|
265
|
-
when :short
|
266
|
-
"(#{translation})"
|
267
|
-
end
|
268
|
-
end
|
269
|
-
|
270
|
-
def render_addendum(input, format)
|
271
|
-
return input unless addendum
|
272
|
-
|
273
|
-
case format
|
274
|
-
when :long
|
275
|
-
"Addendum to #{input}"
|
276
|
-
when :abbrev
|
277
|
-
"Add. to #{input}"
|
278
|
-
when :short
|
279
|
-
"#{input} Add."
|
280
|
-
when :mr
|
281
|
-
"#{input}.add-1"
|
282
|
-
end
|
283
|
-
end
|
284
|
-
|
285
96
|
class << self
|
286
97
|
def create(**opts)
|
287
98
|
new(**opts)
|
@@ -40,7 +40,8 @@ module Pubid::Nist
|
|
40
40
|
end
|
41
41
|
|
42
42
|
rule(:stage) do
|
43
|
-
(space >> (array_to_str(STAGES["id"].keys
|
43
|
+
(space >> (array_to_str(STAGES["id"].keys + STAGES["id"].keys.map(&:upcase)).as(:id) >>
|
44
|
+
array_to_str(STAGES["type"].keys + STAGES["type"].keys.map(&:upcase)).as(:type)).as(:stage))
|
44
45
|
end
|
45
46
|
|
46
47
|
rule(:draft) do
|
@@ -83,7 +84,7 @@ module Pubid::Nist
|
|
83
84
|
end
|
84
85
|
|
85
86
|
rule(:update) do
|
86
|
-
(str("/Upd") | str("/upd")) >> (digits.as(:number) >> str("-") >> digits.as(:year)).as(:update)
|
87
|
+
(str("/Upd") | str("/upd")) >> (digits.as(:number) >> (str("-") >> digits.as(:year)).maybe).as(:update)
|
87
88
|
end
|
88
89
|
|
89
90
|
rule(:translation) do
|
@@ -2,7 +2,7 @@ module Pubid::Nist
|
|
2
2
|
module Parsers
|
3
3
|
class NistSp < Default
|
4
4
|
rule(:version) do
|
5
|
-
(((str("ver") | str(" Ver. ")) >> (digits >> (str(".") >> digits).repeat).as(:version)) |
|
5
|
+
(((str("ver") | str(" Ver. ") | str(" Version ")) >> (digits >> (str(".") >> digits).repeat).as(:version)) |
|
6
6
|
(str("v") >>
|
7
7
|
(match('\d') >> str(".") >> match('\d') >> (str(".") >> match('\d')).maybe).as(:version)))
|
8
8
|
end
|
@@ -39,15 +39,21 @@ module Pubid::Nist
|
|
39
39
|
|
40
40
|
rule(:edition) do
|
41
41
|
((str("e") >> year_digits.as(:edition_year)) | (str("-") >> year_digits.as(:edition_year)) |
|
42
|
-
(str("e") >> digits.as(:edition)))
|
42
|
+
((str("e") | str(" E")) >> digits.as(:edition)))
|
43
43
|
end
|
44
44
|
|
45
45
|
rule(:revision) do
|
46
|
-
((str("rev") | str("r")) >> (digits >> match("[a-z]").maybe).as(:revision)) |
|
46
|
+
((str("rev") | str("r") | str(" Rev. ")) >> (digits >> match("[a-z]").maybe).as(:revision)) |
|
47
47
|
(str("-") >> digits.as(:revision)) |
|
48
48
|
(str("r") >> match("[a-z]").as(:revision)) |
|
49
|
-
(str("r") >> str("").as(:revision))
|
49
|
+
((str("r") | str(" Revision (r)")) >> str("").as(:revision))
|
50
50
|
end
|
51
|
+
|
52
|
+
rule(:volume) do
|
53
|
+
(str("v") | str(" Vol. ")) >> digits.as(:volume)
|
54
|
+
end
|
55
|
+
|
56
|
+
rule(:part_prefixes) { str("pt") | str("p") | str(" Part ") }
|
51
57
|
end
|
52
58
|
end
|
53
59
|
end
|
data/lib/pubid/nist/renderer.rb
CHANGED
@@ -47,6 +47,8 @@ module Pubid::Nist
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def render_edition(edition, opts, _params)
|
50
|
+
return if opts[:without_edition]
|
51
|
+
|
50
52
|
case opts[:format]
|
51
53
|
when :long
|
52
54
|
" Edition "
|
@@ -202,7 +204,7 @@ module Pubid::Nist
|
|
202
204
|
when :mr
|
203
205
|
"."
|
204
206
|
when :short
|
205
|
-
""
|
207
|
+
" "
|
206
208
|
else
|
207
209
|
" "
|
208
210
|
end + stage.to_s(opts[:format])
|
data/lib/pubid/nist/stage.rb
CHANGED
data/lib/pubid/nist/version.rb
CHANGED
data/series.yaml
CHANGED
@@ -15,7 +15,7 @@ long:
|
|
15
15
|
NBS CS-E: Commercial Standards (emergency)
|
16
16
|
NBS CSM: Commercial Standards Monthly
|
17
17
|
NBS FIPS: Federal Information Processing Standards Publication
|
18
|
-
FIPS
|
18
|
+
FIPS: Federal Information Processing Standards Publication
|
19
19
|
NIST GCR: Grant/Contract Reports
|
20
20
|
NBS GCR: Grant/Contract Reports
|
21
21
|
NIST HB: Handbook
|
@@ -59,7 +59,7 @@ abbrev:
|
|
59
59
|
NIST BSS: Bldg. Sci. Ser.
|
60
60
|
NBS BSS: Bldg. Sci. Ser.
|
61
61
|
NBS FIPS: Federal Inf. Process. Stds.
|
62
|
-
FIPS
|
62
|
+
FIPS: Federal Inf. Process. Stds.
|
63
63
|
NIST HB: Handb.
|
64
64
|
NBS HB: Handb.
|
65
65
|
NIST MN: Monogr.
|
@@ -98,7 +98,7 @@ mr:
|
|
98
98
|
NBS CS-E: NBS.CS-E
|
99
99
|
NBS CSM: NBS.CSM
|
100
100
|
NBS FIPS: NBS.FIPS
|
101
|
-
FIPS
|
101
|
+
FIPS: NIST.FIPS
|
102
102
|
NIST GCR: NIST.GCR
|
103
103
|
NBS GCR: NBS.GCR
|
104
104
|
NIST HB: NIST.HB
|
data/update_codes.yaml
CHANGED
@@ -17,12 +17,14 @@ NIST LCIRC: NIST LC
|
|
17
17
|
NBS LCIRC: NBS LC
|
18
18
|
NIST SP 800-57Pt3r1: NIST SP 800-57pt3r1
|
19
19
|
NISTIR: NIST IR
|
20
|
-
NIST FIPS: FIPS
|
20
|
+
NIST FIPS: FIPS
|
21
21
|
NIST.CSWP.01162020pt: NIST.CSWP.01162020(por)
|
22
22
|
/^NBS FIPS 11-1-Sep30$/: NBS FIPS 11-1-Sep30/1977
|
23
23
|
/^NBS FIPS 89-Sep1$/: NBS FIPS 89-Sep1981
|
24
|
-
/^FIPS PUB 54-1-Jan15$/: FIPS
|
25
|
-
/^FIPS
|
24
|
+
/^FIPS PUB 54-1-Jan15$/: FIPS 54-1
|
25
|
+
/^FIPS 54-1-Jan15$/: FIPS 54-1
|
26
|
+
/^FIPS 54-1-Jan17$/: FIPS 54-1-Jan17/1991
|
27
|
+
FIPS PUB: FIPS
|
26
28
|
NBS CRPL c4-4: NBS CRPL 4-4
|
27
29
|
NIST AMS 300-8r1 (February 2021 update): NIST AMS 300-8r1/Upd1-202102
|
28
30
|
NIST AMS 300-8r1/upd: NIST AMS 300-8r1/Upd1-202102
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pubid-nist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -128,14 +128,28 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.
|
131
|
+
version: 1.10.3
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.
|
138
|
+
version: 1.10.3
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rubyzip
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
139
153
|
description: Library to generate, parse and manipulate NIST PubID.
|
140
154
|
email:
|
141
155
|
- open.source@ribose.com
|
@@ -157,7 +171,7 @@ files:
|
|
157
171
|
- lib/pubid/nist/nist_tech_pubs.rb
|
158
172
|
- lib/pubid/nist/parser.rb
|
159
173
|
- lib/pubid/nist/parsers/default.rb
|
160
|
-
- lib/pubid/nist/parsers/
|
174
|
+
- lib/pubid/nist/parsers/fips.rb
|
161
175
|
- lib/pubid/nist/parsers/nbs_bh.rb
|
162
176
|
- lib/pubid/nist/parsers/nbs_circ.rb
|
163
177
|
- lib/pubid/nist/parsers/nbs_crpl.rb
|