pubid 2.0.1 → 2.0.3

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 (216) hide show
  1. checksums.yaml +4 -4
  2. data/data/ieee/update_codes.yaml +2 -2
  3. data/data/parg/adobe.json +1 -1
  4. data/data/parg/aiee.json +1 -1
  5. data/data/parg/aiee.parg +99 -9
  6. data/data/parg/amca.json +1 -1
  7. data/data/parg/ansi.json +1 -1
  8. data/data/parg/api.json +1 -1
  9. data/data/parg/ashrae.json +1 -1
  10. data/data/parg/asme.json +1 -1
  11. data/data/parg/astm.json +1 -1
  12. data/data/parg/bipm.json +1 -1
  13. data/data/parg/bsi.json +1 -1
  14. data/data/parg/ccsds.json +1 -1
  15. data/data/parg/cen_cenelec.json +1 -1
  16. data/data/parg/cie.json +1 -1
  17. data/data/parg/csa.json +1 -1
  18. data/data/parg/ecma.json +1 -1
  19. data/data/parg/etsi.json +1 -1
  20. data/data/parg/evs.json +1 -1
  21. data/data/parg/gost.json +1 -1
  22. data/data/parg/iala.json +1 -1
  23. data/data/parg/iana.json +1 -1
  24. data/data/parg/idf.json +1 -1
  25. data/data/parg/iec.json +1 -1
  26. data/data/parg/ieee.json +1 -1
  27. data/data/parg/iho.json +1 -0
  28. data/data/parg/ire.json +1 -1
  29. data/data/parg/ire.parg +51 -12
  30. data/data/parg/isbn.json +1 -1
  31. data/data/parg/iso.json +1 -1
  32. data/data/parg/iso.parg +751 -0
  33. data/data/parg/itu.json +1 -1
  34. data/data/parg/jcgm.json +1 -1
  35. data/data/parg/jis.json +1 -1
  36. data/data/parg/nesc.json +1 -1
  37. data/data/parg/nesc.parg +97 -12
  38. data/data/parg/nist.json +1 -1
  39. data/data/parg/oiml.json +1 -1
  40. data/data/parg/omg.json +1 -1
  41. data/data/parg/parg.json +1 -1
  42. data/data/parg/plateau.json +1 -1
  43. data/data/parg/tgpp.json +1 -1
  44. data/data/parg/un.json +1 -1
  45. data/lib/pubid/adobe/identifier.rb +1 -1
  46. data/lib/pubid/adobe/parser.rb +2 -113
  47. data/lib/pubid/amca/identifiers/base.rb +1 -1
  48. data/lib/pubid/amca/parser.rb +1 -145
  49. data/lib/pubid/ansi/identifier.rb +1 -1
  50. data/lib/pubid/ansi/parser.rb +1 -82
  51. data/lib/pubid/api/builder.rb +32 -1
  52. data/lib/pubid/api/identifier.rb +1 -1
  53. data/lib/pubid/api/parser.rb +1 -131
  54. data/lib/pubid/ashrae/identifiers/base.rb +1 -1
  55. data/lib/pubid/ashrae/parser.rb +3 -710
  56. data/lib/pubid/asme/builder.rb +6 -4
  57. data/lib/pubid/asme/identifier.rb +1 -2
  58. data/lib/pubid/asme/parser.rb +1 -328
  59. data/lib/pubid/astm/builder.rb +12 -3
  60. data/lib/pubid/astm/identifier.rb +1 -2
  61. data/lib/pubid/astm/parser.rb +1 -227
  62. data/lib/pubid/bipm/identifier.rb +8 -1
  63. data/lib/pubid/bipm/parser.rb +2 -224
  64. data/lib/pubid/bsi/builder.rb +2 -4
  65. data/lib/pubid/bsi/parser.rb +1 -666
  66. data/lib/pubid/bsi/single_identifier.rb +38 -1
  67. data/lib/pubid/calconnect/parser.rb +2 -40
  68. data/lib/pubid/ccsds/identifier.rb +1 -1
  69. data/lib/pubid/ccsds/parser.rb +1 -66
  70. data/lib/pubid/cen_cenelec/identifier.rb +16 -1
  71. data/lib/pubid/cen_cenelec/parser.rb +3 -136
  72. data/lib/pubid/cie/identifier.rb +1 -1
  73. data/lib/pubid/cie/parser.rb +3 -378
  74. data/lib/pubid/conformance.rb +1 -1
  75. data/lib/pubid/csa/builder.rb +41 -18
  76. data/lib/pubid/csa/identifier.rb +12 -4
  77. data/lib/pubid/csa/identifiers/amendment.rb +28 -0
  78. data/lib/pubid/csa/identifiers.rb +1 -0
  79. data/lib/pubid/csa/parser.rb +16 -397
  80. data/lib/pubid/doi/parser.rb +2 -37
  81. data/lib/pubid/easc/builder.rb +1 -1
  82. data/lib/pubid/easc/parser.rb +2 -70
  83. data/lib/pubid/ecma/CLAUDE.md +8 -1
  84. data/lib/pubid/ecma/identifier.rb +13 -8
  85. data/lib/pubid/ecma/parser.rb +2 -54
  86. data/lib/pubid/ecma/renderer.rb +3 -7
  87. data/lib/pubid/errors.rb +18 -13
  88. data/lib/pubid/etsi/builder.rb +8 -5
  89. data/lib/pubid/etsi/identifiers/base.rb +1 -1
  90. data/lib/pubid/etsi/parser.rb +1 -132
  91. data/lib/pubid/evs/identifier.rb +7 -0
  92. data/lib/pubid/evs/parser.rb +1 -8
  93. data/lib/pubid/evs.rb +1 -1
  94. data/lib/pubid/gb/identifier.rb +6 -0
  95. data/lib/pubid/gb/parser.rb +2 -51
  96. data/lib/pubid/gost/identifier.rb +9 -1
  97. data/lib/pubid/gost/parser.rb +4 -81
  98. data/lib/pubid/iala/builder.rb +48 -39
  99. data/lib/pubid/iala/identifier.rb +1 -1
  100. data/lib/pubid/iala/parser.rb +2 -121
  101. data/lib/pubid/iana/identifier.rb +1 -1
  102. data/lib/pubid/iana/parser.rb +2 -24
  103. data/lib/pubid/identifier.rb +78 -1
  104. data/lib/pubid/idf/builder.rb +42 -0
  105. data/lib/pubid/idf/identifier.rb +1 -1
  106. data/lib/pubid/idf/parser.rb +1 -137
  107. data/lib/pubid/idf.rb +1 -2
  108. data/lib/pubid/iec/builder.rb +158 -50
  109. data/lib/pubid/iec/identifier.rb +1 -1
  110. data/lib/pubid/iec/parser.rb +3 -430
  111. data/lib/pubid/ieee/CLAUDE.md +2 -0
  112. data/lib/pubid/ieee/aiee/identifier.rb +2 -1
  113. data/lib/pubid/ieee/aiee.rb +0 -1
  114. data/lib/pubid/ieee/builder.rb +177 -30
  115. data/lib/pubid/ieee/components/code.rb +46 -7
  116. data/lib/pubid/ieee/identifiers/base.rb +5 -2
  117. data/lib/pubid/ieee/identifiers/joint_development.rb +7 -3
  118. data/lib/pubid/ieee/ire/identifier.rb +2 -1
  119. data/lib/pubid/ieee/ire.rb +0 -1
  120. data/lib/pubid/ieee/nesc/builder.rb +1 -1
  121. data/lib/pubid/ieee/nesc.rb +0 -1
  122. data/lib/pubid/ieee/parser.rb +1 -1257
  123. data/lib/pubid/ieee/project_renderer.rb +5 -1
  124. data/lib/pubid/ieee/renderer.rb +4 -2
  125. data/lib/pubid/ieee/urn_generator.rb +4 -1
  126. data/lib/pubid/ietf/identifiers/base.rb +17 -1
  127. data/lib/pubid/ietf/parser.rb +2 -47
  128. data/lib/pubid/ietf/renderer.rb +17 -2
  129. data/lib/pubid/iho/CLAUDE.md +98 -0
  130. data/lib/pubid/iho/builder.rb +4 -1
  131. data/lib/pubid/iho/identifiers/base.rb +28 -2
  132. data/lib/pubid/iho/renderer.rb +8 -0
  133. data/lib/pubid/iho/urn_generator.rb +14 -1
  134. data/lib/pubid/iho/urn_parser.rb +45 -32
  135. data/lib/pubid/iho.rb +0 -1
  136. data/lib/pubid/isbn/identifier.rb +1 -1
  137. data/lib/pubid/isbn/parser.rb +2 -31
  138. data/lib/pubid/iso/CLAUDE.md +66 -0
  139. data/lib/pubid/iso/builder.rb +229 -15
  140. data/lib/pubid/iso/identifier.rb +22 -12
  141. data/lib/pubid/iso/identifiers/directives.rb +6 -3
  142. data/lib/pubid/iso/identifiers/guide.rb +6 -3
  143. data/lib/pubid/iso/identifiers/international_workshop_agreement.rb +6 -3
  144. data/lib/pubid/iso/normalizer.rb +5 -4
  145. data/lib/pubid/iso/parser.rb +1 -539
  146. data/lib/pubid/iso/supplement_identifier.rb +6 -3
  147. data/lib/pubid/iso/urn_parser.rb +13 -8
  148. data/lib/pubid/iso/utilities.rb +4 -5
  149. data/lib/pubid/iso.rb +1 -19
  150. data/lib/pubid/itu/builder.rb +36 -20
  151. data/lib/pubid/itu/identifiers/base.rb +15 -2
  152. data/lib/pubid/itu/parser.rb +1 -775
  153. data/lib/pubid/jcgm/builder.rb +35 -0
  154. data/lib/pubid/jcgm/parser.rb +1 -151
  155. data/lib/pubid/jcgm.rb +1 -2
  156. data/lib/pubid/jis/CLAUDE.md +36 -0
  157. data/lib/pubid/jis/builder.rb +30 -41
  158. data/lib/pubid/jis/identifier.rb +12 -2
  159. data/lib/pubid/jis/identifiers/welding_engineering_standard.rb +35 -0
  160. data/lib/pubid/jis/identifiers.rb +2 -0
  161. data/lib/pubid/jis/parser.rb +1 -128
  162. data/lib/pubid/jis/renderer.rb +1 -1
  163. data/lib/pubid/jis/supplement_identifier.rb +5 -5
  164. data/lib/pubid/jis/urn_parser.rb +2 -1
  165. data/lib/pubid/jis.rb +3 -2
  166. data/lib/pubid/nist/builder.rb +5 -1
  167. data/lib/pubid/nist/caster.rb +13 -3
  168. data/lib/pubid/nist/identifiers/base.rb +37 -2
  169. data/lib/pubid/nist/identifiers/circular.rb +2 -2
  170. data/lib/pubid/nist/identifiers/circular_supplement.rb +2 -2
  171. data/lib/pubid/nist/identifiers/commercial_standards_monthly.rb +2 -2
  172. data/lib/pubid/nist/identifiers/crpl_report.rb +2 -2
  173. data/lib/pubid/nist/identifiers/handbook.rb +2 -2
  174. data/lib/pubid/nist/identifiers/internal_report.rb +2 -2
  175. data/lib/pubid/nist/identifiers/miscellaneous_publication.rb +2 -2
  176. data/lib/pubid/nist/identifiers/monograph.rb +2 -2
  177. data/lib/pubid/nist/identifiers/report.rb +2 -2
  178. data/lib/pubid/nist/parser.rb +19 -775
  179. data/lib/pubid/nist/router.rb +4 -1
  180. data/lib/pubid/nist/supplement_identifier.rb +2 -2
  181. data/lib/pubid/oasis/parser.rb +2 -16
  182. data/lib/pubid/ogc/parser.rb +2 -26
  183. data/lib/pubid/oiml/identifiers/certification_system.rb +7 -0
  184. data/lib/pubid/oiml/identifiers/dual_published.rb +2 -2
  185. data/lib/pubid/oiml/parser.rb +1 -303
  186. data/lib/pubid/oiml.rb +1 -2
  187. data/lib/pubid/omg/identifier.rb +6 -1
  188. data/lib/pubid/omg/parser.rb +2 -76
  189. data/lib/pubid/parser.rb +5 -4
  190. data/lib/pubid/parsers/mr_string.rb +1 -1
  191. data/lib/pubid/plateau/parser.rb +1 -66
  192. data/lib/pubid/plateau.rb +1 -2
  193. data/lib/pubid/renderers/directives_renderer.rb +1 -1
  194. data/lib/pubid/renderers/iwa_renderer.rb +1 -1
  195. data/lib/pubid/renderers/publisher_stripper.rb +82 -0
  196. data/lib/pubid/renderers/supplement_renderer.rb +1 -1
  197. data/lib/pubid/renderers.rb +1 -0
  198. data/lib/pubid/sae/parser.rb +1 -48
  199. data/lib/pubid/tgpp/identifier.rb +1 -1
  200. data/lib/pubid/tgpp/parser.rb +2 -59
  201. data/lib/pubid/un/identifier.rb +1 -1
  202. data/lib/pubid/un/parser.rb +1 -18
  203. data/lib/pubid/version.rb +1 -1
  204. data/lib/pubid/w3c/parser.rb +2 -27
  205. data/lib/pubid/xsf/identifier.rb +10 -6
  206. data/lib/pubid/xsf/parser.rb +3 -31
  207. data/lib/pubid/xsf/renderer.rb +2 -4
  208. data/lib/pubid.rb +8 -9
  209. metadata +9 -23
  210. data/lib/pubid/ieee/aiee/parser.rb +0 -130
  211. data/lib/pubid/ieee/ire/parser.rb +0 -109
  212. data/lib/pubid/ieee/nesc/parser.rb +0 -155
  213. data/lib/pubid/iho/parser.rb +0 -68
  214. data/lib/pubid/parser/common_parse_methods.rb +0 -13
  215. data/lib/pubid/parser/common_parse_rules.rb +0 -56
  216. data/lib/pubid/parser/grammar.rb +0 -96
@@ -128,7 +128,16 @@ module Pubid
128
128
  id: value[:owmwp_year])
129
129
  { first_number: Components::Code.new(value: number_part), edition: edition_part }
130
130
 
131
- when :first_number, :second_number
131
+ # The polymorphic number wrappers split per branch in the grammar
132
+ # (asme's designator/designator_code pattern): first_number /
133
+ # second_number (string) arrive over the bare branches,
134
+ # first_number_composite / second_number_composite (raw) over the
135
+ # branches carrying inner captures. The composite keys map onto
136
+ # the same dispatch.
137
+ when :first_number, :first_number_composite, :second_number,
138
+ :second_number_composite
139
+ type = :first_number if type == :first_number_composite
140
+ type = :second_number if type == :second_number_composite
132
141
  return nil if value.nil? || value.to_s.strip.empty?
133
142
 
134
143
  # NEW: Handle OWMWP date-based number (nested hash structure)
@@ -1039,8 +1048,9 @@ module Pubid
1039
1048
 
1040
1049
  when :edition_month, :edition_year, :edition_day, :edition_has_rev
1041
1050
  # These work together: edition_month + edition_year -> single edition ID
1042
- # Skip processing if this is edition_month alone (will be processed with edition_year)
1043
- return nil if type == :edition_month
1051
+ # Skip processing if this is edition_month or edition_day alone
1052
+ # (both are consumed by the edition_year branch via parsed_hash)
1053
+ return nil if type == :edition_month || type == :edition_day
1044
1054
 
1045
1055
  # Process edition_year, combining with edition_month if present
1046
1056
  return nil if value.nil? || value.to_s.strip.empty?
@@ -346,7 +346,7 @@ module Pubid
346
346
  # @param format [:full, :long, :abbreviated, :short, :mr] output format
347
347
  def to_s(format = nil)
348
348
  # Handle both keyword argument (hash) and positional argument (symbol/string)
349
- annotated = format.is_a?(Hash) ? format[:annotated] : nil
349
+ flags = plain_render_flags(format)
350
350
  format = format[:format] if format.is_a?(Hash)
351
351
 
352
352
  # Default to parsed_format if available (preserves input format on round-trip)
@@ -358,7 +358,42 @@ module Pubid
358
358
  # NIST's `to_s` takes a POSITIONAL format and its `render` override
359
359
  # builds no rendering context, so neither the flag nor the context
360
360
  # reaches the shared hook. Apply the annotation fallback here.
361
- annotate_plain_render(rendered, annotated: annotated)
361
+ annotate_plain_render(rendered, **flags)
362
+ end
363
+
364
+ # The keyword flags a positional-format `to_s` hands to
365
+ # `annotate_plain_render`. Ruby fills the positional `format` with a
366
+ # Hash when a caller passes keywords, so they arrive here.
367
+ #
368
+ # `with_publisher: false` cuts the leading `NIST`/`NBS` from the
369
+ # finished string ({#publisher_prefixes}), which covers every place a
370
+ # NIST style prints a publisher — the compound `NBS …` series, the
371
+ # `default_publisher` subclasses and a supplement's base — in one
372
+ # step.
373
+ def plain_render_flags(format)
374
+ return {} unless format.is_a?(Hash)
375
+
376
+ format.slice(:annotated, :with_publisher)
377
+ end
378
+ private :plain_render_flags
379
+
380
+ # The MR style (`NIST.SP.800-53`) is a fixed machine form and ignores
381
+ # `with_publisher:`. The test reads the OUTPUT, not the requested
382
+ # format: several subclasses pick their style themselves (an id parsed
383
+ # from an MR string still renders the short style), so the format a
384
+ # caller asked for does not say which style came back.
385
+ def apply_with_publisher(result, format, with_publisher)
386
+ mr_style = result.is_a?(String) && result.match?(/\A(?:NIST|NBS)\./)
387
+ return result if mr_style
388
+
389
+ super
390
+ end
391
+ private :apply_with_publisher
392
+
393
+ # Every leading publisher token a NIST short style can print: the
394
+ # parsed publisher, and the two `default_publisher` values.
395
+ def publisher_prefixes
396
+ [publisher.to_s, "NIST", "NBS"]
362
397
  end
363
398
 
364
399
  # NIST has its own defined MR format (to_mr_style) used by relaton-nist
@@ -57,7 +57,7 @@ module Pubid
57
57
  # string: with the flag set, `super` returns a string ending in
58
58
  # "</span>" and the anchor no longer matches. Render plain, rewrite,
59
59
  # then annotate.
60
- annotated = format.is_a?(Hash) ? format[:annotated] : nil
60
+ flags = plain_render_flags(format)
61
61
  format = format[:format] if format.is_a?(Hash)
62
62
 
63
63
  result = super(format)
@@ -72,7 +72,7 @@ module Pubid
72
72
  "e#{edition.id || '?'}.#{edition.additional_text}")
73
73
  end
74
74
 
75
- annotate_plain_render(result, annotated: annotated)
75
+ annotate_plain_render(result, **flags)
76
76
  end
77
77
  end
78
78
  end
@@ -41,7 +41,7 @@ module Pubid
41
41
  # Hash. Normalise it away before `super`, so the annotation is applied
42
42
  # once, here, and covers the date-range branch too — that branch
43
43
  # returns a hand-composed string and never reached `super` at all.
44
- annotated = format.is_a?(Hash) ? format[:annotated] : nil
44
+ flags = plain_render_flags(format)
45
45
  format = format[:format] || :short if format.is_a?(Hash)
46
46
 
47
47
  # Handle date range supplements (no base identifier)
@@ -52,7 +52,7 @@ module Pubid
52
52
  super(format)
53
53
  end
54
54
 
55
- annotate_plain_render(result, annotated: annotated)
55
+ annotate_plain_render(result, **flags)
56
56
  end
57
57
  end
58
58
  end
@@ -45,7 +45,7 @@ module Pubid
45
45
  # a Hash — Ruby converts keywords for a method that accepts none.
46
46
  # The same idiom `Identifiers::Base#to_s` uses. This renderer
47
47
  # ignores `format`, so only the flag is read.
48
- annotated = format.is_a?(Hash) ? format[:annotated] : nil
48
+ flags = plain_render_flags(format)
49
49
 
50
50
  result = "#{publisher} #{series}"
51
51
 
@@ -61,7 +61,7 @@ module Pubid
61
61
  result += " #{vol_str}n#{issue_number.number}"
62
62
  end
63
63
 
64
- annotate_plain_render(result, annotated: annotated)
64
+ annotate_plain_render(result, **flags)
65
65
  end
66
66
  end
67
67
  end
@@ -91,7 +91,7 @@ module Pubid
91
91
  # a Hash — Ruby converts keywords for a method that accepts none.
92
92
  # The same idiom `Identifiers::Base#to_s` uses. This renderer
93
93
  # ignores `format`, so only the flag is read.
94
- annotated = format.is_a?(Hash) ? format[:annotated] : nil
94
+ flags = plain_render_flags(format)
95
95
 
96
96
  # Use actual series attribute if it contains subseries (e.g., "CRPL-F-B")
97
97
  # Otherwise use default series_code ("CRPL")
@@ -129,7 +129,7 @@ module Pubid
129
129
  result += append_short_components
130
130
 
131
131
  result += range_notation if range_notation
132
- annotate_plain_render(result, annotated: annotated)
132
+ annotate_plain_render(result, **flags)
133
133
  end
134
134
  end
135
135
  end
@@ -38,7 +38,7 @@ module Pubid
38
38
  # string: with the flag set, `super` returns a string ending in
39
39
  # "</span>" and the anchor no longer matches. Render plain, rewrite,
40
40
  # then annotate.
41
- annotated = format.is_a?(Hash) ? format[:annotated] : nil
41
+ flags = plain_render_flags(format)
42
42
  format = format[:format] if format.is_a?(Hash)
43
43
 
44
44
  # Use the base to_s method first
@@ -50,7 +50,7 @@ module Pubid
50
50
  "#{edition.type}#{edition.id}-#{edition.additional_text}")
51
51
  end
52
52
 
53
- annotate_plain_render(result, annotated: annotated)
53
+ annotate_plain_render(result, **flags)
54
54
  end
55
55
  end
56
56
  end
@@ -40,7 +40,7 @@ module Pubid
40
40
  # `super` is handed a SYMBOL below, so the base's annotation hook
41
41
  # never sees the flag. Capture it here and wrap what comes back —
42
42
  # exactly once, because the base returned plain text.
43
- annotated = format.is_a?(Hash) ? format[:annotated] : nil
43
+ flags = plain_render_flags(format)
44
44
 
45
45
  # Handle both keyword argument (hash) and positional argument (symbol/string)
46
46
  effective_format = if format.is_a?(Hash)
@@ -56,7 +56,7 @@ module Pubid
56
56
  super(effective_format)
57
57
  end
58
58
 
59
- annotate_plain_render(rendered, annotated: annotated)
59
+ annotate_plain_render(rendered, **flags)
60
60
  end
61
61
  end
62
62
  end
@@ -40,7 +40,7 @@ module Pubid
40
40
  # Hash — Ruby converts keywords for a method that accepts none. The same
41
41
  # idiom `Identifiers::Base#to_s` uses.
42
42
  def to_s(format = :short)
43
- annotated = format.is_a?(Hash) ? format[:annotated] : nil
43
+ flags = plain_render_flags(format)
44
44
  format = format[:format] || :short if format.is_a?(Hash)
45
45
 
46
46
  rendered = case format
@@ -50,7 +50,7 @@ module Pubid
50
50
  to_short_style
51
51
  end
52
52
 
53
- annotate_plain_render(rendered, annotated: annotated)
53
+ annotate_plain_render(rendered, **flags)
54
54
  end
55
55
 
56
56
  public
@@ -38,7 +38,7 @@ module Pubid
38
38
  # `super` is handed a SYMBOL below, so the base's annotation hook
39
39
  # never sees the flag. Capture it here and wrap what comes back —
40
40
  # exactly once, because the base returned plain text.
41
- annotated = format.is_a?(Hash) ? format[:annotated] : nil
41
+ flags = plain_render_flags(format)
42
42
 
43
43
  # Handle both keyword argument (hash) and positional argument (symbol/string)
44
44
  effective_format = if format.is_a?(Hash)
@@ -56,7 +56,7 @@ module Pubid
56
56
  super(effective_format)
57
57
  end
58
58
 
59
- annotate_plain_render(rendered, annotated: annotated)
59
+ annotate_plain_render(rendered, **flags)
60
60
  end
61
61
 
62
62
  private
@@ -43,7 +43,7 @@ module Pubid
43
43
  # Hash — Ruby converts keywords for a method that accepts none. The same
44
44
  # idiom `Identifiers::Base#to_s` uses.
45
45
  def to_s(format = :short)
46
- annotated = format.is_a?(Hash) ? format[:annotated] : nil
46
+ flags = plain_render_flags(format)
47
47
  format = format[:format] || :short if format.is_a?(Hash)
48
48
 
49
49
  rendered = case format
@@ -53,7 +53,7 @@ module Pubid
53
53
  to_short_style
54
54
  end
55
55
 
56
- annotate_plain_render(rendered, annotated: annotated)
56
+ annotate_plain_render(rendered, **flags)
57
57
  end
58
58
 
59
59
  private