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
Instance Method Summary collapse
- #==(other) ⇒ Object
-
#initialize(number:, minor: nil, parts: nil) ⇒ Code
constructor
A new instance of Code.
-
#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.
18 19 20 21 22 |
# File 'lib/pubid/etsi/components/code.rb', line 18 def initialize(number:, minor: nil, parts: nil) @number = number @minor = minor @parts = parts || [] end |
Instance Method Details
#==(other) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/pubid/etsi/components/code.rb', line 32 def ==(other) return false unless other.is_a?(Code) number == other.number && minor == other.minor && parts == other.parts end |
#to_s ⇒ Object
Render code with space for minor and dash-separated parts
25 26 27 28 29 30 |
# File 'lib/pubid/etsi/components/code.rb', line 25 def to_s result = number.to_s result += " #{minor}" if minor result += parts.map { |p| "-#{p}" }.join if parts&.any? result end |