class EdiParser::InterchangeHeader
Attributes
carrier_name[RW]
@return [String] the carrier name.
name[RW]
@return [String] interchange header name.
processing_date[RW]
@return [DateTime] the processing date and time.
receiver_name[RW]
@return [String] the receiver name.
Public Class Methods
new(attributes = {})
click to toggle source
# File lib/edi_parser/interchange_header.rb, line 16 def initialize(attributes = {}) attributes.each do |key, value| __send__("#{key}=", value) end end
parse(line)
click to toggle source
# File lib/edi_parser/interchange_header.rb, line 22 def self.parse(line) raise InvalidInterchangeHeaderError, "Line #{line} doesn't begin with 000 header (CABECALHO DE INTERCAMBIO)" unless line.start_with?("000") header = InterchangeHeader.new header.carrier_name = line[3..37].strip header.receiver_name = line[38..72].strip processing_date_range = 73..82 name_range = 83..94 date_time_format = "%d%m%y%H%M" if header.carrier_name.start_with?("ONTIME") processing_date_range = 73..84 name_range = 85..96 date_time_format = "%d%m%Y%H%M" end header.processing_date = DateTime.strptime(line[processing_date_range], date_time_format) header.name = line[name_range].strip header end