pubid 2.0.20 → 2.0.22
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/README.adoc +73 -31
- data/data/iec/legacy-notation.md +298 -0
- data/data/iho/s4-reserved-specs.yaml +15 -0
- data/data/iso/historic-schemes.md +368 -0
- data/data/parg/bipm.json +1 -1
- data/data/parg/bipm.parg +46 -11
- data/data/parg/iec.json +1 -1
- data/data/parg/iho.json +1 -1
- data/data/parg/iho.parg +128 -11
- data/data/parg/iso.json +1 -1
- data/data/parg/iso.parg +142 -2
- data/data/parg/plateau.json +1 -1
- data/data/parg/tables/iec_typed_stages.yaml +3 -0
- data/data/parg/tables/typed_stages_ballots.yaml +6 -0
- data/data/parg/tables/typed_stages_supplements.yaml +1 -0
- data/lib/pubid/bipm/CLAUDE.md +6 -1
- data/lib/pubid/bipm/builder.rb +20 -1
- data/lib/pubid/bipm/renderer.rb +14 -2
- data/lib/pubid/bipm/urn_generator.rb +80 -14
- data/lib/pubid/bipm/urn_parser.rb +70 -6
- data/lib/pubid/ecma/CLAUDE.md +12 -0
- data/lib/pubid/ecma/identifier.rb +1 -2
- data/lib/pubid/ecma/parser.rb +49 -0
- data/lib/pubid/iec/CLAUDE.md +9 -1
- data/lib/pubid/iec/builder.rb +47 -0
- data/lib/pubid/iec/identifier.rb +19 -70
- data/lib/pubid/iec/identifiers/amendment.rb +34 -0
- data/lib/pubid/iec/identifiers/corrigendum.rb +6 -1
- data/lib/pubid/iec/identifiers/fragment_identifier.rb +3 -3
- data/lib/pubid/iec/single_identifier.rb +69 -4
- data/lib/pubid/iec/supplement_identifier.rb +89 -83
- data/lib/pubid/iho/CLAUDE.md +54 -1
- data/lib/pubid/iho/builder.rb +105 -2
- data/lib/pubid/iho/identifiers/base.rb +52 -1
- data/lib/pubid/iho/pubid_urn_schema.rb +12 -4
- data/lib/pubid/iho/renderer.rb +39 -2
- data/lib/pubid/iho/reserved_specs.rb +54 -0
- data/lib/pubid/iho/urn_generator.rb +6 -0
- data/lib/pubid/iho/urn_parser.rb +50 -9
- data/lib/pubid/iho.rb +1 -0
- data/lib/pubid/iso/CLAUDE.md +49 -0
- data/lib/pubid/iso/builder.rb +77 -0
- data/lib/pubid/iso/identifiers/amendment.rb +1 -1
- data/lib/pubid/iso/single_identifier.rb +7 -1
- data/lib/pubid/nist/CLAUDE.md +49 -0
- data/lib/pubid/nist/builder.rb +5 -0
- data/lib/pubid/nist/identifiers/base.rb +42 -1
- data/lib/pubid/nist/identifiers/federal_information_processing_standards.rb +44 -5
- data/lib/pubid/nist/preprocessor.rb +18 -0
- data/lib/pubid/nist/urn_parser.rb +1 -1
- data/lib/pubid/plateau/CLAUDE.md +35 -0
- data/lib/pubid/plateau/builder.rb +4 -0
- data/lib/pubid/plateau/identifiers/handbook.rb +10 -2
- data/lib/pubid/plateau/pubid_urn_schema.rb +1 -0
- data/lib/pubid/plateau/renderer.rb +6 -1
- data/lib/pubid/sae/CLAUDE.md +11 -2
- data/lib/pubid/version.rb +1 -1
- metadata +7 -2
|
@@ -4,10 +4,18 @@ module Pubid
|
|
|
4
4
|
module Plateau
|
|
5
5
|
module Identifiers
|
|
6
6
|
# PLATEAU Handbook
|
|
7
|
-
# Format: PLATEAU Handbook #NN[-annex] [第X.Y版]
|
|
7
|
+
# Format: PLATEAU Handbook #NN[-annex] [第X.Y版[ volume]]
|
|
8
8
|
# Example: PLATEAU Handbook #00 第1.0版
|
|
9
|
+
# Example: PLATEAU Handbook #00 第5.0版 本編+付録
|
|
9
10
|
class Handbook < Identifier
|
|
10
11
|
attribute :edition, :string, default: -> {}
|
|
12
|
+
# The volume label MLIT prints after the edition: "本編" (the main
|
|
13
|
+
# volume alone) or "本編+付録" (main volume and appendix, one PDF).
|
|
14
|
+
attribute :volume, :string, default: -> {}
|
|
15
|
+
|
|
16
|
+
# A nil `volume` means the publication has no volume label:
|
|
17
|
+
# `#00 第5.0版` does not subsume `#00 第5.0版 本編+付録`.
|
|
18
|
+
subset_strict :volume
|
|
11
19
|
|
|
12
20
|
def type_string
|
|
13
21
|
"Handbook"
|
|
@@ -20,7 +28,7 @@ module Pubid
|
|
|
20
28
|
def ==(other)
|
|
21
29
|
return false unless other.is_a?(Handbook)
|
|
22
30
|
|
|
23
|
-
super && edition == other.edition
|
|
31
|
+
super && edition == other.edition && volume == other.volume
|
|
24
32
|
end
|
|
25
33
|
end
|
|
26
34
|
end
|
|
@@ -39,7 +39,12 @@ module Pubid
|
|
|
39
39
|
|
|
40
40
|
def render_handbook(id)
|
|
41
41
|
result = "#{id.publisher} #{id.type_string} #{id.formatted_number}#{id.formatted_annex}"
|
|
42
|
-
result
|
|
42
|
+
return result unless id.edition
|
|
43
|
+
|
|
44
|
+
# The grammar reads a volume label only after an edition, so a
|
|
45
|
+
# volume without one (e.g. after exclude(:edition)) is not printed.
|
|
46
|
+
result += " #{id.formatted_edition}"
|
|
47
|
+
result += " #{id.volume}" if id.volume
|
|
43
48
|
result
|
|
44
49
|
end
|
|
45
50
|
|
data/lib/pubid/sae/CLAUDE.md
CHANGED
|
@@ -12,8 +12,17 @@ Measured on the full deposit list (2026-11-04, 47,692 DOIs): **46,726
|
|
|
12
12
|
parse**, and every parsed code round-trips through `to_s`, `from_hash` and
|
|
13
13
|
the URN, with **0 `to_hash` collisions**. The 966 that do not parse are:
|
|
14
14
|
|
|
15
|
-
- **791 CP\*** (`CPGM`, `CPFD`, `CPKW`, …):
|
|
16
|
-
|
|
15
|
+
- **791 CP\*** (`CPGM`, `CPFD`, `CPKW`, …): SAE "Certified Power" data
|
|
16
|
+
products — engine power/torque data certified under SAE J1349, one per
|
|
17
|
+
vehicle and level (`CPGM2_15LFXCOCA`: "J1349 Certified Power Engine Data
|
|
18
|
+
for GM as used in 2015 LFX Colorado/Canyon - Level 2"). The letters after
|
|
19
|
+
`CP` name the manufacturer (`GM`, `FD` Ford, `FC` FCA, …). They are data
|
|
20
|
+
products, not standards, and stay out of `TYPES` by decision (pubid#686).
|
|
21
|
+
`SAE CPGM2016` in pubid#686 is not a deposit: it is the synthetic DOI of
|
|
22
|
+
relaton's "reports a record pubid cannot parse" spec
|
|
23
|
+
(`spec/sae/relaton/sae/data_fetcher_spec.rb`), which, with
|
|
24
|
+
`bibliography_spec.rb` and `docs/sae.md`, relies on it failing to parse.
|
|
25
|
+
`spec/pubid/sae/crossref_coverage_spec.rb` pins the rejection.
|
|
17
26
|
- **175 one-offs**, none more than 32 of a kind: `SUP1` supplements
|
|
18
27
|
(`AS4468SUP1A`, `ARP4737SUP1`), language tails (`AS9101F_PTBR`,
|
|
19
28
|
`IA9137_DEDE`), `J2534-2/10_5_00`, `_4Q2012`, type-less `SAE6857`,
|
data/lib/pubid/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pubid
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.22
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-11-
|
|
11
|
+
date: 2026-11-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: lutaml-model
|
|
@@ -68,9 +68,12 @@ files:
|
|
|
68
68
|
- conformance/pending.yaml
|
|
69
69
|
- data/bipm/update_codes.yaml
|
|
70
70
|
- data/ccsds/update_codes.yaml
|
|
71
|
+
- data/iec/legacy-notation.md
|
|
71
72
|
- data/iec/stage-codes.md
|
|
72
73
|
- data/iec/update_codes.yaml
|
|
73
74
|
- data/ieee/update_codes.yaml
|
|
75
|
+
- data/iho/s4-reserved-specs.yaml
|
|
76
|
+
- data/iso/historic-schemes.md
|
|
74
77
|
- data/iso/update_codes.yaml
|
|
75
78
|
- data/nist/series.yaml
|
|
76
79
|
- data/nist/stages.yaml
|
|
@@ -141,6 +144,7 @@ files:
|
|
|
141
144
|
- data/parg/tables/organizations.yaml
|
|
142
145
|
- data/parg/tables/tc_types.yaml
|
|
143
146
|
- data/parg/tables/typed_stages.yaml
|
|
147
|
+
- data/parg/tables/typed_stages_ballots.yaml
|
|
144
148
|
- data/parg/tables/typed_stages_supplements.yaml
|
|
145
149
|
- data/parg/tables/wg_types.yaml
|
|
146
150
|
- data/parg/tgpp.json
|
|
@@ -733,6 +737,7 @@ files:
|
|
|
733
737
|
- lib/pubid/iho/identifiers/standard.rb
|
|
734
738
|
- lib/pubid/iho/pubid_urn_schema.rb
|
|
735
739
|
- lib/pubid/iho/renderer.rb
|
|
740
|
+
- lib/pubid/iho/reserved_specs.rb
|
|
736
741
|
- lib/pubid/iho/urn_generator.rb
|
|
737
742
|
- lib/pubid/iho/urn_parser.rb
|
|
738
743
|
- lib/pubid/isbn.rb
|