Class: Pubid::Ccsds::SupplementIdentifier

Inherits:
Identifier show all
Defined in:
lib/pubid/ccsds/supplement_identifier.rb

Overview

Base class for CCSDS supplements (corrigenda, amendments, etc.). Descends from the abstract root (not the concrete Base) and points base at the root, so the polymorphic attribute never resolves to its own superclass — which is what prevents lutaml from recursing forever while building a supplement from a hash.

Direct Known Subclasses

Identifiers::Corrigendum

Constant Summary

Constants inherited from Identifier

Identifier::CCSDS_TYPE_MAP

Instance Method Summary collapse

Methods inherited from Identifier

parse, #publisher

Methods inherited from Identifier

apply_mappings, #base, #base_document, concrete_class_for, #dated_version_of?, #draft_of?, #drop_supplements, #edition_of?, #eql?, #exclude, from_hash, #has_supplement?, #hash, #includes?, #initialize, #matches?, #mr_all_parts, #mr_edition, #mr_languages, #mr_number, #mr_number_with_part, #mr_part, #mr_publisher, #mr_subpart, #mr_supplement_suffix, #mr_type, #mr_year, #new_edition_of?, polymorphic_name, polymorphic_type_map, #related_to?, #render, #resolve_urn_generator, #root, #sibling_of?, #supplement_of?, #to_hash, #to_mr_string, #to_s, #to_slug, #to_supplement_s, #to_urn, #urn_supplement_type, #urn_type_code, #year

Constructor Details

This class inherits a constructor from Pubid::Identifier

Instance Method Details

#<=>(other) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/pubid/ccsds/supplement_identifier.rb', line 23

def <=>(other)
  return nil unless other.is_a?(SupplementIdentifier)

  # Compare base identifiers first
  if base && other.base
    base_cmp = base <=> other.base
    return base_cmp unless base_cmp.zero?
  end

  # Subclasses should implement more specific comparison
  0
end