pubid 2.0.0.pre.alpha.11 → 2.0.0.pre.alpha.13

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.
Files changed (274) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +43 -1
  3. data/data/ieee/update_codes.yaml +17 -4
  4. data/data/nist/update_codes.yaml +7 -3
  5. data/lib/pubid/adobe/builder.rb +2 -0
  6. data/lib/pubid/all_parts.rb +201 -0
  7. data/lib/pubid/all_parts_identifier.rb +19 -0
  8. data/lib/pubid/amca/CLAUDE.md +47 -0
  9. data/lib/pubid/amca/builder.rb +3 -5
  10. data/lib/pubid/amca/identifiers/base.rb +10 -0
  11. data/lib/pubid/amca/identifiers/publication.rb +13 -0
  12. data/lib/pubid/amca/parser.rb +2 -1
  13. data/lib/pubid/amca/renderer.rb +22 -33
  14. data/lib/pubid/amca/urn_generator.rb +21 -2
  15. data/lib/pubid/amca/urn_parser.rb +36 -10
  16. data/lib/pubid/ansi/builder.rb +6 -0
  17. data/lib/pubid/api/CLAUDE.md +23 -0
  18. data/lib/pubid/api/builder.rb +2 -0
  19. data/lib/pubid/ashrae/CLAUDE.md +13 -0
  20. data/lib/pubid/ashrae/builder.rb +58 -14
  21. data/lib/pubid/ashrae/identifiers/errata.rb +14 -2
  22. data/lib/pubid/ashrae/identifiers/interpretation.rb +2 -10
  23. data/lib/pubid/ashrae/parser.rb +62 -28
  24. data/lib/pubid/ashrae/renderer.rb +32 -1
  25. data/lib/pubid/ashrae/urn_generator.rb +32 -9
  26. data/lib/pubid/asme/CLAUDE.md +25 -0
  27. data/lib/pubid/asme/builder.rb +16 -9
  28. data/lib/pubid/asme/components/code.rb +2 -0
  29. data/lib/pubid/asme/identifiers/standard.rb +6 -1
  30. data/lib/pubid/asme/parser.rb +41 -14
  31. data/lib/pubid/astm/CLAUDE.md +9 -0
  32. data/lib/pubid/astm/builder.rb +2 -0
  33. data/lib/pubid/astm/components/code.rb +2 -0
  34. data/lib/pubid/astm/parser.rb +4 -1
  35. data/lib/pubid/bipm/CLAUDE.md +11 -0
  36. data/lib/pubid/bipm/builder.rb +2 -0
  37. data/lib/pubid/bsi/CLAUDE.md +93 -0
  38. data/lib/pubid/bsi/builder.rb +13 -11
  39. data/lib/pubid/bsi/components/date.rb +10 -4
  40. data/lib/pubid/bsi/identifiers/addendum_document.rb +2 -0
  41. data/lib/pubid/bsi/identifiers/adopted_european_norm.rb +6 -54
  42. data/lib/pubid/bsi/identifiers/adopted_international_standard.rb +5 -22
  43. data/lib/pubid/bsi/identifiers/amendment.rb +36 -12
  44. data/lib/pubid/bsi/identifiers/british_industrial_practice.rb +1 -1
  45. data/lib/pubid/bsi/identifiers/bundled_identifier.rb +2 -0
  46. data/lib/pubid/bsi/identifiers/consolidated_identifier.rb +23 -26
  47. data/lib/pubid/bsi/identifiers/corrigendum.rb +29 -12
  48. data/lib/pubid/bsi/identifiers/expert_commentary.rb +6 -7
  49. data/lib/pubid/bsi/identifiers/handbook.rb +1 -1
  50. data/lib/pubid/bsi/identifiers/national_annex.rb +18 -20
  51. data/lib/pubid/bsi/identifiers/practice_guide.rb +1 -1
  52. data/lib/pubid/bsi/identifiers/root_identity.rb +31 -0
  53. data/lib/pubid/bsi/identifiers/set.rb +2 -0
  54. data/lib/pubid/bsi/identifiers/supplement_document.rb +2 -0
  55. data/lib/pubid/bsi/identifiers.rb +1 -0
  56. data/lib/pubid/bsi/parser.rb +8 -8
  57. data/lib/pubid/bsi/renderer.rb +20 -20
  58. data/lib/pubid/bsi/single_identifier.rb +11 -2
  59. data/lib/pubid/bsi/urn_generator.rb +28 -18
  60. data/lib/pubid/builder/base.rb +27 -0
  61. data/lib/pubid/calconnect/builder.rb +2 -0
  62. data/lib/pubid/calconnect/identifier.rb +4 -0
  63. data/lib/pubid/ccsds/builder.rb +2 -0
  64. data/lib/pubid/ccsds/identifier.rb +12 -0
  65. data/lib/pubid/ccsds/single_identifier.rb +14 -10
  66. data/lib/pubid/cen_cenelec/CLAUDE.md +59 -0
  67. data/lib/pubid/cen_cenelec/builder.rb +6 -1
  68. data/lib/pubid/cen_cenelec/identifier.rb +10 -27
  69. data/lib/pubid/cen_cenelec/identifiers/amendment.rb +3 -10
  70. data/lib/pubid/cen_cenelec/identifiers/corrigendum.rb +3 -10
  71. data/lib/pubid/cen_cenelec/parser.rb +11 -3
  72. data/lib/pubid/cie/CLAUDE.md +58 -0
  73. data/lib/pubid/cie/builder.rb +2 -0
  74. data/lib/pubid/cie/components/language.rb +2 -0
  75. data/lib/pubid/components/adoption.rb +2 -0
  76. data/lib/pubid/components/code.rb +2 -0
  77. data/lib/pubid/components/date.rb +8 -6
  78. data/lib/pubid/components/edition.rb +2 -0
  79. data/lib/pubid/components/iteration.rb +2 -0
  80. data/lib/pubid/components/language.rb +2 -0
  81. data/lib/pubid/components/locality.rb +2 -0
  82. data/lib/pubid/components/publisher.rb +2 -0
  83. data/lib/pubid/components/relationship.rb +2 -0
  84. data/lib/pubid/components/stage.rb +2 -0
  85. data/lib/pubid/components/supplement.rb +2 -0
  86. data/lib/pubid/components/type.rb +2 -0
  87. data/lib/pubid/components/typed_stage.rb +8 -0
  88. data/lib/pubid/csa/CLAUDE.md +41 -0
  89. data/lib/pubid/csa/builder.rb +5 -3
  90. data/lib/pubid/csa/identifier.rb +13 -1
  91. data/lib/pubid/csa/identifiers/bundled.rb +2 -2
  92. data/lib/pubid/csa/identifiers/cec.rb +1 -1
  93. data/lib/pubid/csa/renderer.rb +12 -12
  94. data/lib/pubid/csa/single_identifier.rb +18 -1
  95. data/lib/pubid/csa/urn_generator.rb +1 -1
  96. data/lib/pubid/doi/builder.rb +2 -0
  97. data/lib/pubid/easc/builder.rb +2 -0
  98. data/lib/pubid/ecma/CLAUDE.md +28 -0
  99. data/lib/pubid/ecma/builder.rb +2 -0
  100. data/lib/pubid/ecma/identifier.rb +7 -0
  101. data/lib/pubid/etsi/CLAUDE.md +34 -0
  102. data/lib/pubid/etsi/builder.rb +2 -0
  103. data/lib/pubid/etsi/components/code.rb +6 -0
  104. data/lib/pubid/etsi/components/version.rb +2 -0
  105. data/lib/pubid/etsi/identifiers/etsi_standard.rb +7 -0
  106. data/lib/pubid/evs/CLAUDE.md +58 -0
  107. data/lib/pubid/evs/builder.rb +3 -1
  108. data/lib/pubid/evs/identifier.rb +6 -6
  109. data/lib/pubid/evs/identifiers/national_adoption.rb +7 -2
  110. data/lib/pubid/evs/renderer.rb +1 -1
  111. data/lib/pubid/evs/urn_generator.rb +1 -1
  112. data/lib/pubid/evs/urn_parser.rb +1 -1
  113. data/lib/pubid/gb/CLAUDE.md +140 -0
  114. data/lib/pubid/gb/builder.rb +21 -11
  115. data/lib/pubid/gb/identifier.rb +28 -7
  116. data/lib/pubid/gb/identifiers/all_parts.rb +17 -0
  117. data/lib/pubid/gb/identifiers.rb +1 -0
  118. data/lib/pubid/gb/parser.rb +4 -0
  119. data/lib/pubid/gb/renderer.rb +4 -4
  120. data/lib/pubid/gb.rb +1 -0
  121. data/lib/pubid/gost/CLAUDE.md +64 -0
  122. data/lib/pubid/gost/builder.rb +3 -1
  123. data/lib/pubid/gost/identifier.rb +5 -0
  124. data/lib/pubid/iala/CLAUDE.md +82 -0
  125. data/lib/pubid/iala/builder.rb +2 -0
  126. data/lib/pubid/iana/CLAUDE.md +7 -0
  127. data/lib/pubid/iana/builder.rb +2 -0
  128. data/lib/pubid/identifier.rb +172 -20
  129. data/lib/pubid/idf/builder.rb +6 -1
  130. data/lib/pubid/idf/identifier.rb +12 -0
  131. data/lib/pubid/idf/identifiers/all_parts.rb +17 -0
  132. data/lib/pubid/idf/identifiers/amendment.rb +1 -1
  133. data/lib/pubid/idf/identifiers/corrigendum.rb +1 -1
  134. data/lib/pubid/idf/identifiers/international_standard.rb +1 -1
  135. data/lib/pubid/idf/identifiers/reviewed_method.rb +1 -1
  136. data/lib/pubid/idf/identifiers.rb +1 -0
  137. data/lib/pubid/idf/single_identifier.rb +1 -1
  138. data/lib/pubid/iec/CLAUDE.md +31 -0
  139. data/lib/pubid/iec/builder.rb +7 -1
  140. data/lib/pubid/iec/components/consolidated_amendment.rb +4 -0
  141. data/lib/pubid/iec/components/sheet.rb +2 -0
  142. data/lib/pubid/iec/components/trf_info.rb +2 -0
  143. data/lib/pubid/iec/components/vap_suffix.rb +2 -0
  144. data/lib/pubid/iec/identifier.rb +7 -2
  145. data/lib/pubid/iec/identifiers/all_parts.rb +19 -0
  146. data/lib/pubid/iec/identifiers.rb +1 -0
  147. data/lib/pubid/iec/renderer.rb +0 -1
  148. data/lib/pubid/iec/urn_generator.rb +9 -1
  149. data/lib/pubid/iec/urn_parser.rb +3 -2
  150. data/lib/pubid/ieee/CLAUDE.md +97 -0
  151. data/lib/pubid/ieee/builder.rb +176 -7
  152. data/lib/pubid/ieee/components/code.rb +2 -0
  153. data/lib/pubid/ieee/components/draft.rb +35 -2
  154. data/lib/pubid/ieee/components/typed_stage.rb +2 -0
  155. data/lib/pubid/ieee/identifiers/base.rb +20 -0
  156. data/lib/pubid/ieee/identifiers/iec_ieee_copublished.rb +9 -0
  157. data/lib/pubid/ieee/identifiers/joint_development.rb +17 -10
  158. data/lib/pubid/ieee/identifiers/project_draft_identifier.rb +8 -1
  159. data/lib/pubid/ieee/identifiers/si_standard.rb +5 -2
  160. data/lib/pubid/ieee/ire/parser.rb +19 -1
  161. data/lib/pubid/ieee/parser.rb +337 -49
  162. data/lib/pubid/ieee/project_renderer.rb +46 -0
  163. data/lib/pubid/ieee/renderer.rb +46 -14
  164. data/lib/pubid/ieee/urn_generator.rb +31 -0
  165. data/lib/pubid/ieee.rb +2 -0
  166. data/lib/pubid/ietf/CLAUDE.md +7 -0
  167. data/lib/pubid/ietf/builder.rb +2 -0
  168. data/lib/pubid/iho/builder.rb +2 -0
  169. data/lib/pubid/isbn/builder.rb +2 -0
  170. data/lib/pubid/iso/CLAUDE.md +47 -0
  171. data/lib/pubid/iso/builder.rb +29 -16
  172. data/lib/pubid/iso/components/publisher.rb +2 -0
  173. data/lib/pubid/iso/components.rb +0 -1
  174. data/lib/pubid/iso/identifier.rb +17 -18
  175. data/lib/pubid/iso/identifiers/all_parts.rb +19 -0
  176. data/lib/pubid/iso/identifiers/directives.rb +7 -4
  177. data/lib/pubid/iso/identifiers/directives_supplement.rb +4 -2
  178. data/lib/pubid/iso/identifiers/tc_document.rb +31 -46
  179. data/lib/pubid/iso/identifiers.rb +1 -0
  180. data/lib/pubid/iso/normalizer.rb +1 -1
  181. data/lib/pubid/iso/rendering_style.rb +0 -1
  182. data/lib/pubid/iso/urn_generator.rb +10 -10
  183. data/lib/pubid/iso.rb +5 -4
  184. data/lib/pubid/itu/CLAUDE.md +69 -0
  185. data/lib/pubid/itu/builder.rb +12 -0
  186. data/lib/pubid/itu/components/code.rb +2 -0
  187. data/lib/pubid/itu/components/designation.rb +2 -0
  188. data/lib/pubid/itu/components/sector.rb +2 -0
  189. data/lib/pubid/itu/components/series.rb +2 -0
  190. data/lib/pubid/itu/identifiers/base.rb +10 -0
  191. data/lib/pubid/itu/identifiers/contribution.rb +31 -0
  192. data/lib/pubid/itu/identifiers/supplement.rb +15 -0
  193. data/lib/pubid/itu/identifiers.rb +1 -0
  194. data/lib/pubid/itu/parser.rb +19 -2
  195. data/lib/pubid/jcgm/CLAUDE.md +7 -0
  196. data/lib/pubid/jcgm/builder.rb +2 -0
  197. data/lib/pubid/jcgm/components/publisher.rb +2 -0
  198. data/lib/pubid/jis/builder.rb +5 -1
  199. data/lib/pubid/jis/identifier.rb +5 -17
  200. data/lib/pubid/jis/identifiers/all_parts.rb +19 -0
  201. data/lib/pubid/jis/identifiers.rb +1 -0
  202. data/lib/pubid/jis/renderer.rb +0 -2
  203. data/lib/pubid/jis/urn_generator.rb +0 -1
  204. data/lib/pubid/nist/CLAUDE.md +56 -0
  205. data/lib/pubid/nist/builder.rb +14 -12
  206. data/lib/pubid/nist/components/edition.rb +2 -0
  207. data/lib/pubid/nist/components/issue_number.rb +2 -0
  208. data/lib/pubid/nist/components/part.rb +2 -0
  209. data/lib/pubid/nist/components/stage.rb +2 -0
  210. data/lib/pubid/nist/components/supplement.rb +2 -0
  211. data/lib/pubid/nist/components/translation.rb +2 -0
  212. data/lib/pubid/nist/components/update.rb +2 -0
  213. data/lib/pubid/nist/components/version.rb +2 -0
  214. data/lib/pubid/nist/components/volume.rb +2 -0
  215. data/lib/pubid/nist/identifiers/base.rb +34 -6
  216. data/lib/pubid/nist/identifiers/commercial_standard_emergency.rb +1 -1
  217. data/lib/pubid/nist/identifiers/crpl_report.rb +5 -6
  218. data/lib/pubid/nist/identifiers/federal_information_processing_standards.rb +2 -2
  219. data/lib/pubid/nist/identifiers/miscellaneous_publication.rb +2 -2
  220. data/lib/pubid/nist/parser.rb +15 -2
  221. data/lib/pubid/nist/preprocessor.rb +53 -2
  222. data/lib/pubid/nist/series/ir.rb +3 -7
  223. data/lib/pubid/oasis/CLAUDE.md +19 -0
  224. data/lib/pubid/oasis/builder.rb +2 -0
  225. data/lib/pubid/oasis/identifier.rb +19 -0
  226. data/lib/pubid/ogc/CLAUDE.md +34 -0
  227. data/lib/pubid/ogc/builder.rb +2 -0
  228. data/lib/pubid/ogc/identifier.rb +11 -0
  229. data/lib/pubid/oiml/CLAUDE.md +189 -0
  230. data/lib/pubid/oiml/builder.rb +22 -2
  231. data/lib/pubid/oiml/components/code.rb +6 -0
  232. data/lib/pubid/oiml/identifier.rb +13 -0
  233. data/lib/pubid/oiml/identifiers/annex.rb +4 -0
  234. data/lib/pubid/oiml/identifiers/bulletin.rb +30 -36
  235. data/lib/pubid/oiml/identifiers/certification_system.rb +34 -0
  236. data/lib/pubid/oiml/identifiers/code_number.rb +10 -2
  237. data/lib/pubid/oiml/identifiers/dual_published.rb +174 -0
  238. data/lib/pubid/oiml/identifiers.rb +2 -0
  239. data/lib/pubid/oiml/parser.rb +41 -5
  240. data/lib/pubid/oiml/renderer.rb +26 -4
  241. data/lib/pubid/oiml/single_identifier.rb +5 -1
  242. data/lib/pubid/oiml/supplement_identifier.rb +7 -0
  243. data/lib/pubid/oiml/urn_generator.rb +32 -4
  244. data/lib/pubid/oiml.rb +5 -0
  245. data/lib/pubid/omg/CLAUDE.md +15 -0
  246. data/lib/pubid/omg/builder.rb +2 -0
  247. data/lib/pubid/parser/grammar.rb +23 -0
  248. data/lib/pubid/plateau/builder.rb +2 -0
  249. data/lib/pubid/plateau/identifiers/base.rb +4 -0
  250. data/lib/pubid/plateau/supplement_identifier.rb +14 -2
  251. data/lib/pubid/plateau/urn_generator.rb +7 -1
  252. data/lib/pubid/renderers/directives_renderer.rb +3 -1
  253. data/lib/pubid/renderers/human_readable.rb +0 -1
  254. data/lib/pubid/sae/builder.rb +3 -1
  255. data/lib/pubid/sae/components/date.rb +2 -0
  256. data/lib/pubid/sae/components/type.rb +2 -0
  257. data/lib/pubid/sae/identifiers/base.rb +4 -1
  258. data/lib/pubid/sae/urn_generator.rb +1 -1
  259. data/lib/pubid/subset_match.rb +197 -0
  260. data/lib/pubid/tgpp/CLAUDE.md +43 -0
  261. data/lib/pubid/tgpp/builder.rb +2 -0
  262. data/lib/pubid/tgpp/identifier.rb +14 -0
  263. data/lib/pubid/type_resolver.rb +14 -2
  264. data/lib/pubid/un/builder.rb +2 -0
  265. data/lib/pubid/version.rb +1 -1
  266. data/lib/pubid/w3c/CLAUDE.md +7 -0
  267. data/lib/pubid/w3c/builder.rb +2 -0
  268. data/lib/pubid/xsf/CLAUDE.md +11 -0
  269. data/lib/pubid/xsf/builder.rb +2 -0
  270. data/lib/pubid.rb +16 -3
  271. data/lib/tasks/docs.rake +13 -11
  272. metadata +46 -4
  273. data/lib/pubid/ccsds/identifiers/base_BASE_88929.rb +0 -70
  274. data/lib/pubid/iso/components/code.rb +0 -24
data/lib/tasks/docs.rake CHANGED
@@ -8,17 +8,19 @@ namespace :docs do
8
8
  output_dir = File.join(__dir__, "..", "..", "docs", "identifier-patterns")
9
9
  FileUtils.mkdir_p(output_dir)
10
10
 
11
- flavors = Dir[File.join(__dir__, "..", "..", "lib", "pubid",
12
- "*")].select do |d|
13
- File.directory?(d)
14
- end
15
- .map do |d|
16
- File.basename(d)
17
- end
18
- .reject do |f|
19
- %w[core components rendering
20
- parser serializable utils].include?(f)
21
- end
11
+ lib_root = File.join(__dir__, "..", "..", "lib", "pubid")
12
+ # The registry is the authoritative flavor list. This replaces a
13
+ # filesystem glob over lib/pubid/* directories, whose reject list kept
14
+ # going stale and swept internal modules (parsers, renderers, lutaml,
15
+ # builder, utils, ...) in as "flavors". The module-derived directory
16
+ # (CenCenelec -> cen_cenelec, W3c -> w3c) must exist on disk.
17
+ Pubid.eager_load_flavors!
18
+ flavors = Pubid::Registry.flavor_names.filter_map do |name|
19
+ mod = Pubid::Registry.get(name)
20
+ dir = mod.name.split("::").last
21
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2').downcase
22
+ dir if File.directory?(File.join(lib_root, dir))
23
+ end.uniq.sort
22
24
 
23
25
  flavors.each do |flavor|
24
26
  puts "Generating docs for #{flavor}..."
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.0.pre.alpha.11
4
+ version: 2.0.0.pre.alpha.13
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-09-15 00:00:00.000000000 Z
11
+ date: 2026-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model
@@ -72,7 +72,10 @@ files:
72
72
  - lib/pubid/adobe/renderer.rb
73
73
  - lib/pubid/adobe/urn_generator.rb
74
74
  - lib/pubid/adobe/urn_parser.rb
75
+ - lib/pubid/all_parts.rb
76
+ - lib/pubid/all_parts_identifier.rb
75
77
  - lib/pubid/amca.rb
78
+ - lib/pubid/amca/CLAUDE.md
76
79
  - lib/pubid/amca/builder.rb
77
80
  - lib/pubid/amca/identifier.rb
78
81
  - lib/pubid/amca/identifiers.rb
@@ -97,6 +100,7 @@ files:
97
100
  - lib/pubid/ansi/urn_generator.rb
98
101
  - lib/pubid/ansi/urn_parser.rb
99
102
  - lib/pubid/api.rb
103
+ - lib/pubid/api/CLAUDE.md
100
104
  - lib/pubid/api/builder.rb
101
105
  - lib/pubid/api/components/code.rb
102
106
  - lib/pubid/api/identifier.rb
@@ -117,6 +121,7 @@ files:
117
121
  - lib/pubid/api/urn_generator.rb
118
122
  - lib/pubid/api/urn_parser.rb
119
123
  - lib/pubid/ashrae.rb
124
+ - lib/pubid/ashrae/CLAUDE.md
120
125
  - lib/pubid/ashrae/builder.rb
121
126
  - lib/pubid/ashrae/identifier.rb
122
127
  - lib/pubid/ashrae/identifiers.rb
@@ -135,6 +140,7 @@ files:
135
140
  - lib/pubid/ashrae/urn_generator.rb
136
141
  - lib/pubid/ashrae/urn_parser.rb
137
142
  - lib/pubid/asme.rb
143
+ - lib/pubid/asme/CLAUDE.md
138
144
  - lib/pubid/asme/builder.rb
139
145
  - lib/pubid/asme/components/code.rb
140
146
  - lib/pubid/asme/identifier.rb
@@ -147,6 +153,7 @@ files:
147
153
  - lib/pubid/asme/urn_generator.rb
148
154
  - lib/pubid/asme/urn_parser.rb
149
155
  - lib/pubid/astm.rb
156
+ - lib/pubid/astm/CLAUDE.md
150
157
  - lib/pubid/astm/builder.rb
151
158
  - lib/pubid/astm/components.rb
152
159
  - lib/pubid/astm/components/code.rb
@@ -169,6 +176,7 @@ files:
169
176
  - lib/pubid/astm/urn_generator.rb
170
177
  - lib/pubid/astm/urn_parser.rb
171
178
  - lib/pubid/bipm.rb
179
+ - lib/pubid/bipm/CLAUDE.md
172
180
  - lib/pubid/bipm/builder.rb
173
181
  - lib/pubid/bipm/identifier.rb
174
182
  - lib/pubid/bipm/identifiers.rb
@@ -183,6 +191,7 @@ files:
183
191
  - lib/pubid/bipm/urn_generator.rb
184
192
  - lib/pubid/bipm/urn_parser.rb
185
193
  - lib/pubid/bsi.rb
194
+ - lib/pubid/bsi/CLAUDE.md
186
195
  - lib/pubid/bsi/builder.rb
187
196
  - lib/pubid/bsi/components/code.rb
188
197
  - lib/pubid/bsi/components/date.rb
@@ -215,6 +224,7 @@ files:
215
224
  - lib/pubid/bsi/identifiers/practice_guide.rb
216
225
  - lib/pubid/bsi/identifiers/publicly_available_specification.rb
217
226
  - lib/pubid/bsi/identifiers/published_document.rb
227
+ - lib/pubid/bsi/identifiers/root_identity.rb
218
228
  - lib/pubid/bsi/identifiers/section.rb
219
229
  - lib/pubid/bsi/identifiers/set.rb
220
230
  - lib/pubid/bsi/identifiers/standalone_amendment.rb
@@ -245,7 +255,6 @@ files:
245
255
  - lib/pubid/ccsds/identifier.rb
246
256
  - lib/pubid/ccsds/identifiers.rb
247
257
  - lib/pubid/ccsds/identifiers/base.rb
248
- - lib/pubid/ccsds/identifiers/base_BASE_88929.rb
249
258
  - lib/pubid/ccsds/identifiers/corrigendum.rb
250
259
  - lib/pubid/ccsds/parser.rb
251
260
  - lib/pubid/ccsds/single_identifier.rb
@@ -253,6 +262,7 @@ files:
253
262
  - lib/pubid/ccsds/urn_generator.rb
254
263
  - lib/pubid/ccsds/urn_parser.rb
255
264
  - lib/pubid/cen_cenelec.rb
265
+ - lib/pubid/cen_cenelec/CLAUDE.md
256
266
  - lib/pubid/cen_cenelec/builder.rb
257
267
  - lib/pubid/cen_cenelec/identifier.rb
258
268
  - lib/pubid/cen_cenelec/identifiers.rb
@@ -278,6 +288,7 @@ files:
278
288
  - lib/pubid/cen_cenelec/urn_generator.rb
279
289
  - lib/pubid/cen_cenelec/urn_parser.rb
280
290
  - lib/pubid/cie.rb
291
+ - lib/pubid/cie/CLAUDE.md
281
292
  - lib/pubid/cie/builder.rb
282
293
  - lib/pubid/cie/components/language.rb
283
294
  - lib/pubid/cie/identifier.rb
@@ -323,6 +334,7 @@ files:
323
334
  - lib/pubid/core/pattern_doc_generator.rb
324
335
  - lib/pubid/core/update_codes.rb
325
336
  - lib/pubid/csa.rb
337
+ - lib/pubid/csa/CLAUDE.md
326
338
  - lib/pubid/csa/builder.rb
327
339
  - lib/pubid/csa/components.rb
328
340
  - lib/pubid/csa/components/code.rb
@@ -362,6 +374,7 @@ files:
362
374
  - lib/pubid/easc/urn_generator.rb
363
375
  - lib/pubid/easc/urn_parser.rb
364
376
  - lib/pubid/ecma.rb
377
+ - lib/pubid/ecma/CLAUDE.md
365
378
  - lib/pubid/ecma/builder.rb
366
379
  - lib/pubid/ecma/identifier.rb
367
380
  - lib/pubid/ecma/identifiers.rb
@@ -374,6 +387,7 @@ files:
374
387
  - lib/pubid/ecma/urn_parser.rb
375
388
  - lib/pubid/errors.rb
376
389
  - lib/pubid/etsi.rb
390
+ - lib/pubid/etsi/CLAUDE.md
377
391
  - lib/pubid/etsi/builder.rb
378
392
  - lib/pubid/etsi/components.rb
379
393
  - lib/pubid/etsi/components/code.rb
@@ -390,6 +404,7 @@ files:
390
404
  - lib/pubid/etsi/urn_generator.rb
391
405
  - lib/pubid/etsi/urn_parser.rb
392
406
  - lib/pubid/evs.rb
407
+ - lib/pubid/evs/CLAUDE.md
393
408
  - lib/pubid/evs/builder.rb
394
409
  - lib/pubid/evs/identifier.rb
395
410
  - lib/pubid/evs/identifiers.rb
@@ -406,13 +421,16 @@ files:
406
421
  - lib/pubid/format_detector.rb
407
422
  - lib/pubid/format_registry.rb
408
423
  - lib/pubid/gb.rb
424
+ - lib/pubid/gb/CLAUDE.md
409
425
  - lib/pubid/gb/builder.rb
410
426
  - lib/pubid/gb/identifier.rb
411
427
  - lib/pubid/gb/identifiers.rb
428
+ - lib/pubid/gb/identifiers/all_parts.rb
412
429
  - lib/pubid/gb/identifiers/standard.rb
413
430
  - lib/pubid/gb/parser.rb
414
431
  - lib/pubid/gb/renderer.rb
415
432
  - lib/pubid/gost.rb
433
+ - lib/pubid/gost/CLAUDE.md
416
434
  - lib/pubid/gost/builder.rb
417
435
  - lib/pubid/gost/identifier.rb
418
436
  - lib/pubid/gost/identifiers.rb
@@ -426,6 +444,7 @@ files:
426
444
  - lib/pubid/gost/urn_generator.rb
427
445
  - lib/pubid/gost/urn_parser.rb
428
446
  - lib/pubid/iala.rb
447
+ - lib/pubid/iala/CLAUDE.md
429
448
  - lib/pubid/iala/builder.rb
430
449
  - lib/pubid/iala/identifier.rb
431
450
  - lib/pubid/iala/identifiers.rb
@@ -445,6 +464,7 @@ files:
445
464
  - lib/pubid/iala/urn_generator.rb
446
465
  - lib/pubid/iala/urn_parser.rb
447
466
  - lib/pubid/iana.rb
467
+ - lib/pubid/iana/CLAUDE.md
448
468
  - lib/pubid/iana/builder.rb
449
469
  - lib/pubid/iana/identifier.rb
450
470
  - lib/pubid/iana/identifiers.rb
@@ -459,6 +479,7 @@ files:
459
479
  - lib/pubid/idf/builder.rb
460
480
  - lib/pubid/idf/identifier.rb
461
481
  - lib/pubid/idf/identifiers.rb
482
+ - lib/pubid/idf/identifiers/all_parts.rb
462
483
  - lib/pubid/idf/identifiers/amendment.rb
463
484
  - lib/pubid/idf/identifiers/corrigendum.rb
464
485
  - lib/pubid/idf/identifiers/international_standard.rb
@@ -470,6 +491,7 @@ files:
470
491
  - lib/pubid/idf/urn_generator.rb
471
492
  - lib/pubid/idf/urn_parser.rb
472
493
  - lib/pubid/iec.rb
494
+ - lib/pubid/iec/CLAUDE.md
473
495
  - lib/pubid/iec/builder.rb
474
496
  - lib/pubid/iec/components.rb
475
497
  - lib/pubid/iec/components/consolidated_amendment.rb
@@ -479,6 +501,7 @@ files:
479
501
  - lib/pubid/iec/components/vap_suffix.rb
480
502
  - lib/pubid/iec/identifier.rb
481
503
  - lib/pubid/iec/identifiers.rb
504
+ - lib/pubid/iec/identifiers/all_parts.rb
482
505
  - lib/pubid/iec/identifiers/amendment.rb
483
506
  - lib/pubid/iec/identifiers/base.rb
484
507
  - lib/pubid/iec/identifiers/component_specification.rb
@@ -510,6 +533,7 @@ files:
510
533
  - lib/pubid/iec/urn_generator.rb
511
534
  - lib/pubid/iec/urn_parser.rb
512
535
  - lib/pubid/ieee.rb
536
+ - lib/pubid/ieee/CLAUDE.md
513
537
  - lib/pubid/ieee/aiee.rb
514
538
  - lib/pubid/ieee/aiee/builder.rb
515
539
  - lib/pubid/ieee/aiee/identifier.rb
@@ -557,12 +581,14 @@ files:
557
581
  - lib/pubid/ieee/nesc/parser.rb
558
582
  - lib/pubid/ieee/parser.rb
559
583
  - lib/pubid/ieee/pre_parser.rb
584
+ - lib/pubid/ieee/project_renderer.rb
560
585
  - lib/pubid/ieee/renderer.rb
561
586
  - lib/pubid/ieee/typed_stages.rb
562
587
  - lib/pubid/ieee/urn_generator.rb
563
588
  - lib/pubid/ieee/urn_parser.rb
564
589
  - lib/pubid/ieee_debug.rb
565
590
  - lib/pubid/ietf.rb
591
+ - lib/pubid/ietf/CLAUDE.md
566
592
  - lib/pubid/ietf/builder.rb
567
593
  - lib/pubid/ietf/identifier.rb
568
594
  - lib/pubid/ietf/identifiers.rb
@@ -600,16 +626,17 @@ files:
600
626
  - lib/pubid/isbn/parser.rb
601
627
  - lib/pubid/isbn/renderer.rb
602
628
  - lib/pubid/iso.rb
629
+ - lib/pubid/iso/CLAUDE.md
603
630
  - lib/pubid/iso/builder.rb
604
631
  - lib/pubid/iso/bundled_identifier.rb
605
632
  - lib/pubid/iso/combined_identifier.rb
606
633
  - lib/pubid/iso/components.rb
607
- - lib/pubid/iso/components/code.rb
608
634
  - lib/pubid/iso/components/publisher.rb
609
635
  - lib/pubid/iso/format_resolver.rb
610
636
  - lib/pubid/iso/identifier.rb
611
637
  - lib/pubid/iso/identifiers.rb
612
638
  - lib/pubid/iso/identifiers/addendum.rb
639
+ - lib/pubid/iso/identifiers/all_parts.rb
613
640
  - lib/pubid/iso/identifiers/amendment.rb
614
641
  - lib/pubid/iso/identifiers/corrigendum.rb
615
642
  - lib/pubid/iso/identifiers/data.rb
@@ -636,6 +663,7 @@ files:
636
663
  - lib/pubid/iso/urn_parser.rb
637
664
  - lib/pubid/iso/utilities.rb
638
665
  - lib/pubid/itu.rb
666
+ - lib/pubid/itu/CLAUDE.md
639
667
  - lib/pubid/itu/builder.rb
640
668
  - lib/pubid/itu/components.rb
641
669
  - lib/pubid/itu/components/code.rb
@@ -653,6 +681,7 @@ files:
653
681
  - lib/pubid/itu/identifiers/appendix_of_recommendation.rb
654
682
  - lib/pubid/itu/identifiers/base.rb
655
683
  - lib/pubid/itu/identifiers/combined_identifier.rb
684
+ - lib/pubid/itu/identifiers/contribution.rb
656
685
  - lib/pubid/itu/identifiers/corrigendum.rb
657
686
  - lib/pubid/itu/identifiers/errata.rb
658
687
  - lib/pubid/itu/identifiers/handbook.rb
@@ -667,6 +696,7 @@ files:
667
696
  - lib/pubid/itu/urn_generator.rb
668
697
  - lib/pubid/itu/urn_parser.rb
669
698
  - lib/pubid/jcgm.rb
699
+ - lib/pubid/jcgm/CLAUDE.md
670
700
  - lib/pubid/jcgm/builder.rb
671
701
  - lib/pubid/jcgm/components.rb
672
702
  - lib/pubid/jcgm/components/publisher.rb
@@ -687,6 +717,7 @@ files:
687
717
  - lib/pubid/jis/builder.rb
688
718
  - lib/pubid/jis/identifier.rb
689
719
  - lib/pubid/jis/identifiers.rb
720
+ - lib/pubid/jis/identifiers/all_parts.rb
690
721
  - lib/pubid/jis/identifiers/amendment.rb
691
722
  - lib/pubid/jis/identifiers/corrigendum.rb
692
723
  - lib/pubid/jis/identifiers/explanation.rb
@@ -702,6 +733,7 @@ files:
702
733
  - lib/pubid/jis/urn_parser.rb
703
734
  - lib/pubid/lutaml/no_store_registration.rb
704
735
  - lib/pubid/nist.rb
736
+ - lib/pubid/nist/CLAUDE.md
705
737
  - lib/pubid/nist/builder.rb
706
738
  - lib/pubid/nist/caster.rb
707
739
  - lib/pubid/nist/circular_supplement_builder.rb
@@ -757,6 +789,7 @@ files:
757
789
  - lib/pubid/nist/urn_generator.rb
758
790
  - lib/pubid/nist/urn_parser.rb
759
791
  - lib/pubid/oasis.rb
792
+ - lib/pubid/oasis/CLAUDE.md
760
793
  - lib/pubid/oasis/builder.rb
761
794
  - lib/pubid/oasis/identifier.rb
762
795
  - lib/pubid/oasis/identifiers.rb
@@ -766,6 +799,7 @@ files:
766
799
  - lib/pubid/oasis/urn_generator.rb
767
800
  - lib/pubid/oasis/urn_parser.rb
768
801
  - lib/pubid/ogc.rb
802
+ - lib/pubid/ogc/CLAUDE.md
769
803
  - lib/pubid/ogc/builder.rb
770
804
  - lib/pubid/ogc/identifier.rb
771
805
  - lib/pubid/ogc/identifiers.rb
@@ -775,6 +809,7 @@ files:
775
809
  - lib/pubid/ogc/urn_generator.rb
776
810
  - lib/pubid/ogc/urn_parser.rb
777
811
  - lib/pubid/oiml.rb
812
+ - lib/pubid/oiml/CLAUDE.md
778
813
  - lib/pubid/oiml/builder.rb
779
814
  - lib/pubid/oiml/components.rb
780
815
  - lib/pubid/oiml/components/code.rb
@@ -784,8 +819,10 @@ files:
784
819
  - lib/pubid/oiml/identifiers/annex.rb
785
820
  - lib/pubid/oiml/identifiers/basic_publication.rb
786
821
  - lib/pubid/oiml/identifiers/bulletin.rb
822
+ - lib/pubid/oiml/identifiers/certification_system.rb
787
823
  - lib/pubid/oiml/identifiers/code_number.rb
788
824
  - lib/pubid/oiml/identifiers/document.rb
825
+ - lib/pubid/oiml/identifiers/dual_published.rb
789
826
  - lib/pubid/oiml/identifiers/errata.rb
790
827
  - lib/pubid/oiml/identifiers/expert_report.rb
791
828
  - lib/pubid/oiml/identifiers/guide.rb
@@ -799,6 +836,7 @@ files:
799
836
  - lib/pubid/oiml/urn_generator.rb
800
837
  - lib/pubid/oiml/urn_parser.rb
801
838
  - lib/pubid/omg.rb
839
+ - lib/pubid/omg/CLAUDE.md
802
840
  - lib/pubid/omg/builder.rb
803
841
  - lib/pubid/omg/identifier.rb
804
842
  - lib/pubid/omg/identifiers.rb
@@ -862,7 +900,9 @@ files:
862
900
  - lib/pubid/schema/identifier_type.rb
863
901
  - lib/pubid/schema/loader.rb
864
902
  - lib/pubid/schema/typed_stage.rb
903
+ - lib/pubid/subset_match.rb
865
904
  - lib/pubid/tgpp.rb
905
+ - lib/pubid/tgpp/CLAUDE.md
866
906
  - lib/pubid/tgpp/builder.rb
867
907
  - lib/pubid/tgpp/identifier.rb
868
908
  - lib/pubid/tgpp/identifiers.rb
@@ -888,6 +928,7 @@ files:
888
928
  - lib/pubid/utils/string_normalizer.rb
889
929
  - lib/pubid/version.rb
890
930
  - lib/pubid/w3c.rb
931
+ - lib/pubid/w3c/CLAUDE.md
891
932
  - lib/pubid/w3c/builder.rb
892
933
  - lib/pubid/w3c/identifier.rb
893
934
  - lib/pubid/w3c/identifiers.rb
@@ -907,6 +948,7 @@ files:
907
948
  - lib/pubid/w3c/urn_generator.rb
908
949
  - lib/pubid/w3c/urn_parser.rb
909
950
  - lib/pubid/xsf.rb
951
+ - lib/pubid/xsf/CLAUDE.md
910
952
  - lib/pubid/xsf/builder.rb
911
953
  - lib/pubid/xsf/identifier.rb
912
954
  - lib/pubid/xsf/identifiers.rb
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "lutaml/model"
4
- require_relative "../../serializable"
5
- require_relative "../urn_generator"
6
-
7
- module Pubid
8
- module Ccsds
9
- module Identifiers
10
- # CCSDS identifier
11
- # Format: CCSDS NUMBER.PART-TYPE-EDITION[-SUFFIX]
12
- # Example: CCSDS 120.0-G-4, CCSDS 100.0-G-1-S
13
- class Base < Lutaml::Model::Serializable
14
- include Pubid::Serializable
15
-
16
- # Generate URN for this identifier
17
- #
18
- # @return [String] URN representation
19
- def to_urn
20
- UrnGenerator.new(self).generate
21
- end
22
-
23
- # Include CCSDS-specific attributes in serialization
24
- def base_hash
25
- hash = super
26
- # CCSDS uses plain strings for type, edition, suffix
27
- hash[:type] = type if type
28
- hash[:suffix] = suffix if suffix
29
- hash[:language] = language if language
30
- hash
31
- end
32
-
33
- attribute :number, :string
34
- attribute :part, :string
35
- attribute :type, :string # B, G, M, R, Y, O, etc.
36
- attribute :edition, :string
37
- attribute :suffix, :string # Optional suffix like -S
38
- attribute :language, :string # Language metadata (e.g., "French", "Russian")
39
-
40
- def publisher
41
- "CCSDS"
42
- end
43
-
44
- def to_s
45
- result = "#{publisher} #{number}"
46
- result += ".#{part}" if part
47
- result += "-#{type}" if type
48
- result += "-#{edition}" if edition
49
- result += "-#{suffix}" if suffix
50
-
51
- # Add language metadata
52
- result += " - #{language} Translated" if language
53
-
54
- result
55
- end
56
-
57
- def ==(other)
58
- return false unless other.is_a?(Base)
59
-
60
- number == other.number &&
61
- part == other.part &&
62
- type == other.type &&
63
- edition == other.edition &&
64
- suffix == other.suffix &&
65
- language == other.language
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Pubid
4
- module Iso
5
- module Components
6
- # Code component for ISO identifiers.
7
- #
8
- # Inherits +value+ and +parts+ from the shared Code; overrides
9
- # rendering to join parts with "-" (ISO convention). Equality and
10
- # hash are inherited from the shared Code (compare all fields).
11
- class Code < ::Pubid::Components::Code
12
- def to_s
13
- result = value.to_s
14
- result += parts.map { |p| "-#{p}" }.join if parts&.any?
15
- result
16
- end
17
-
18
- def render(context: nil)
19
- to_s
20
- end
21
- end
22
- end
23
- end
24
- end