class Segment
Base segment class - defaults to binary (8-bit byte) encoding
Definitions
def self.build(data, mode: :auto)
Factory method to build segments from various data types
Signature
-
parameter
data
String, Array, Segment
The data to encode
-
parameter
mode
Symbol
Encoding mode (:auto, :number, :alphanumeric, :byte_8bit)
Implementation
def self.build(data, mode: :auto)
case data
when String
[create_segment_for_data(data, mode)]
when Array
data.map do |item|
case item
when Hash
create_segment_for_data(item[:data], item[:mode] || :auto)
when String
create_segment_for_data(item, mode)
when Segment
item
else
raise ArgumentError, "Array elements must be Strings, Hashes with :data key, or Segments"
end
end
when Segment
[data]
else
raise ArgumentError, "data must be a String, Segment, or Array"
end
end