Sha256: bacbbed18d818a14774691d0c5df1e34657564380528a7b243421cfef2934a39
Contents?: true
Size: 1.04 KB
Versions: 2
Compression:
Stored size: 1.04 KB
Contents
module GS1 module Barcode # Class for parsing barcodes. Uses {Segment} for splitting up the individual # parts. # class Tokenizer attr_reader :data, :separator, :params def initialize(data, separator: GS1.configuration.barcode_separator) @data = data @separator = separator @params = [] end def to_params @to_params ||= segment_to_params(data) end def to_params! @to_params ||= segment_to_params(data, true) end private def segment_to_params(input, bang = false) segment_from_input(input, bang) do |segment| next if segment.to_params.empty? params << segment.to_params next if segment.rest.empty? segment_to_params(segment.rest, bang) end params end def segment_from_input(input, bang) Segment.new(input, separator: separator).tap do |segment| segment.validate! if bang yield segment if block_given? end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gs1-1.1.0 | lib/gs1/barcode/tokenizer.rb |
gs1-1.0.0 | lib/gs1/barcode/tokenizer.rb |