Class: Pubid::Etsi::Components::Code
- Inherits:
-
Lutaml::Model::Serializable
- Object
- Lutaml::Model::Serializable
- Pubid::Etsi::Components::Code
- Defined in:
- lib/pubid/etsi/components/code.rb
Overview
Represents an ETSI code with complex number formats Handles three variants:
Simple: 012, 123, 456
GSM: GSM 02.01, 02.01
Complex: ABC 123, ABC-DEF 123
Stays independent of Pubid::Components::Code because ETSI uses minor (a flavor-specific sub-number) plus parts.
Instance Method Summary collapse
- #==(other) ⇒ Object
-
#initialize(number:, minor: nil, parts: nil) ⇒ Code
constructor
A new instance of Code.
- #render(context: nil) ⇒ Object
-
#to_s ⇒ Object
Render code with space for minor and dash-separated parts.
Constructor Details
#initialize(number:, minor: nil, parts: nil) ⇒ Code
Returns a new instance of Code.
21 22 23 24 25 |
# File 'lib/pubid/etsi/components/code.rb', line 21 def initialize(number:, minor: nil, parts: nil) @number = number @minor = minor @parts = parts || [] end |
Instance Method Details
#==(other) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/pubid/etsi/components/code.rb', line 39 def ==(other) return false unless other.is_a?(Code) number == other.number && minor == other.minor && parts == other.parts end |
#render(context: nil) ⇒ Object
35 36 37 |
# File 'lib/pubid/etsi/components/code.rb', line 35 def render(context: nil) to_s end |
#to_s ⇒ Object
Render code with space for minor and dash-separated parts
28 29 30 31 32 33 |
# File 'lib/pubid/etsi/components/code.rb', line 28 def to_s result = number.to_s result += " #{minor}" if minor result += parts.map { |p| "-#{p}" }.join if parts&.any? result end |