Method: Barcode1DTools::MSI#initialize

Defined in:
lib/barcode1dtools/msi.rb

#initialize(value, options = {}) ⇒ MSI

Create a new MSI object with a given value. Options are :line_character, :space_character, :w_character, :n_character, :check_digit, :checksum_included, and :skip_checksum.



223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
# File 'lib/barcode1dtools/msi.rb', line 223

def initialize(value, options = {})

  @options = DEFAULT_OPTIONS.merge(options)

  # Can we encode this value?
  raise UnencodableCharactersError unless self.class.can_encode?(value)

  if @options[:skip_checksum]
    @encoded_string = value.to_s
    @value = value.to_s
    @check_digit = nil
  elsif @options[:checksum_included]
    raise ChecksumError unless self.class.validate_check_digit_for(value, @options)
    @encoded_string = value.to_s
    @value, @check_digit = self.class.split_payload_and_check_digits(value, @options)
  else
    @value = value.to_s
    @check_digit = self.class.generate_check_digit_for(@value, @options)
    @encoded_string = "#{@value}#{@check_digit}"
  end
end