Class: Pubid::Bsi::Identifiers::CommitteeDocument

Inherits:
SingleIdentifier show all
Defined in:
lib/pubid/bsi/identifiers/committee_document.rb

Overview

CommitteeDocument represents BSI committee draft documents Format: YY/NNNNNNNN DC (2-digit year, 8-digit number, DC suffix)

Examples:

14/30300822 DC
21/30445138 DC
24/30300822 DC

Constant Summary collapse

TYPED_STAGES =

TYPED_STAGES for committee documents (draft by default)

[
  Pubid::Components::TypedStage.new(
    code: :draft_committee,
    stage_code: :draft,
    type_code: :committee_document,
    abbr: ["DC"],
    name: "Draft Committee Document",
    harmonized_stages: %w[30.00 30.20 30.60 40.00 40.20 40.60],
  ),
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from SingleIdentifier

#<=>, #publisher

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::Identifier

Class Method Details

.typeObject



28
29
30
# File 'lib/pubid/bsi/identifiers/committee_document.rb', line 28

def self.type
  { key: :committee_document, title: "Committee Document", short: "DC" }
end

Instance Method Details

#to_s(lang: :en, lang_single: false) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/pubid/bsi/identifiers/committee_document.rb', line 32

def to_s(lang: :en, lang_single: false)
  # Committee documents use a unique format: YY/NNNNNNNN DC
  # The year is 2-digit (extracted from date or use current date format)
  # Note: Assumes 2000s for years 00-99 (Y2K assumption)
  year_str = if date
               if date.is_a?(Components::Date)
                 date.year.to_s[-2, 2]
               else
                 date.to_s[-2, 2]
               end
             else
               "00" # Default if no date
             end

  "#{year_str}/#{document_number} DC"
end