class P15ID::Segment
Constants
- LIST
- MEASURE
- PATINFO
- SD_FD_SEP
- SEGMENT_END
Attributes
fields[R]
segment[R]
Public Class Methods
new(segment:)
click to toggle source
# File lib/p15id/segment.rb, line 13 def initialize(segment:) raise "Invalid Segment '#{segment}'" unless LIST.include?(segment) @segment = segment @fields = [] end
Public Instance Methods
add_field(field)
click to toggle source
# File lib/p15id/segment.rb, line 20 def add_field(field) return if @fields.any? { |f| f.field == field.field } if (MEASURE.include?(@segment) && !Field::MEASURE_LIST.include?(field.field)) || (PATINFO.include?(@segment) && !Field::PATINFO_LIST.include?(field.field)) raise("Field '#{field.field}' not compatible with Segment '#{@segment}'") end @fields << field end
to_bytes()
click to toggle source
# File lib/p15id/segment.rb, line 36 def to_bytes fields = @fields.map(&:to_bytes).join to_s(fields: fields, segment_end: SEGMENT_END, sd_fd_sep: SD_FD_SEP) end
to_s(fields: nil, segment_end: "$", sd_fd_sep: ":")
click to toggle source
# File lib/p15id/segment.rb, line 31 def to_s(fields: nil, segment_end: "$", sd_fd_sep: ":") fields ||= @fields.map(&:to_s).join "#{@segment}#{sd_fd_sep}#{fields}#{segment_end}" end