Class: Pubid::Iec::Identifiers::Base
- Inherits:
-
SingleIdentifier
- Object
- Lutaml::Model::Serializable
- Pubid::Identifier
- Pubid::Iec::Identifier
- SingleIdentifier
- Pubid::Iec::Identifiers::Base
- Defined in:
- lib/pubid/iec/identifiers/base.rb
Overview
Base class for all IEC identifiers Inherits from SingleIdentifier to get common functionality Single Responsibility: Common IEC identifier attributes and behavior
Direct Known Subclasses
ComponentSpecification, ConformityAssessment, Guide, InternationalStandard, OperationalDocument, PubliclyAvailableSpecification, SocietalTechnologyTrendReport, SystemsReferenceDocument, TechnicalGroup, TechnicalReport, TechnicalSpecification, TechnologyReport, TestReportForm, WhitePaper, WorkingDocument
Constant Summary
Constants inherited from Pubid::Iec::Identifier
Pubid::Iec::Identifier::IEC_TYPE_MAP
Class Method Summary collapse
Instance Method Summary collapse
- #number_portion ⇒ Object
-
#validate! ⇒ Object
Validate IEC-specific constraints.
Methods inherited from SingleIdentifier
#edition_portion, #language_portion, #publisher_portion, #to_s
Methods inherited from Pubid::Iec::Identifier
#all_parts_from_kv, #all_parts_to_kv, #build_code, build_type_map, #copublishers_from_kv, #copublishers_to_kv, #day_from_kv, #day_to_kv, default_publisher, #emit_code, #month_from_kv, #month_to_kv, #number_from_kv, #number_to_kv, parse, #part_from_kv, #part_to_kv, published_typed_stage, #publisher_from_kv, #publisher_to_kv, #stage, #stage_from_kv, #stage_iteration_from_kv, #stage_iteration_to_kv, #stage_to_kv, #subpart_from_kv, #subpart_to_kv, #type, #undated_from_kv, #undated_to_kv, #year_from_kv, #year_to_kv
Methods inherited from Pubid::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
Class Method Details
.type ⇒ Object
40 41 42 |
# File 'lib/pubid/iec/identifiers/base.rb', line 40 def self.type raise NotImplementedError, "Subclass must implement self.type method" end |
Instance Method Details
#number_portion ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/pubid/iec/identifiers/base.rb', line 23 def number_portion return "" unless number result = " #{number}" # Add part if present result += "-#{part}" if part && part.to_s != "" # Add subpart if present result += "-#{subpart}" if subpart && subpart.to_s != "" # Render the date (year[-month[-day]], or `--` for undated). result += ":#{date.render}" if date result end |
#validate! ⇒ Object
Validate IEC-specific constraints
45 46 47 48 49 50 |
# File 'lib/pubid/iec/identifiers/base.rb', line 45 def validate! super if defined?(super) # Validate TRF info if present trf_info&.validate! if trf_info && !trf_info.empty? end |