Class: Pubid::Nist::Identifiers::CircularSupplement

Inherits:
SupplementIdentifier show all
Defined in:
lib/pubid/nist/identifiers/circular_supplement.rb

Overview

NBS Circular Supplement Identifier Wraps a base Circular identifier with supplement information

Examples:

  • “NBS CIRC 101e2supp” → CircularSupplement(base: Circular(101, e2))

  • “NBS CIRC 25supp-1924” → CircularSupplement(base: Circular(25), edition: 1924)

  • “NBS CIRC suppJun1925-Jun1926” → CircularSupplement(edition with date range)

Constant Summary collapse

TYPED_STAGES =

NOTE: CircularSupplement uses same TYPED_STAGES as Circular It’s a variant edition pattern, not a separate series type

[
  Pubid::Components::TypedStage.new(
    abbr: ["CIRC", "NBS CIRC"],
    stage_code: "published",
    type_code: "circ",
  ),
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from SupplementIdentifier

#publisher, #series

Methods inherited from Base

#edition_greater?, #extract_edition_number, #initialize, #language, #merge, #publisher, #revision, #series_code, #translation, #weight

Methods inherited from Identifier

#base_identifier, #eql?, #exclude, #hash, #initialize, #mr_number, #mr_number_with_part, #mr_part, #mr_publisher, #mr_type, #mr_year, #new_edition_of?, polymorphic_name, #render, #resolve_urn_generator, #root, #to_mr_string, #to_supplement_s, #to_urn, #urn_supplement_type, #urn_type_code

Constructor Details

This class inherits a constructor from Pubid::Nist::Identifiers::Base

Class Method Details

.typeObject



29
30
31
# File 'lib/pubid/nist/identifiers/circular_supplement.rb', line 29

def type
  { key: :circ_supp, title: "NBS Circular Supplement", short: "CIRC" }
end

.typed_stagesObject



25
26
27
# File 'lib/pubid/nist/identifiers/circular_supplement.rb', line 25

def typed_stages
  TYPED_STAGES
end

Instance Method Details

#to_s(format = :short) ⇒ Object



38
39
40
41
42
43
44
45
46
# File 'lib/pubid/nist/identifiers/circular_supplement.rb', line 38

def to_s(format = :short)
  # Handle date range supplements (no base identifier)
  if supplement_date_range_start && supplement_date_range_end
    return "NBS CIRC supp#{supplement_date_range_start}-#{supplement_date_range_end}"
  end

  # Use parent's rendering for base + supplement
  super
end