class EdiParser::EdiFile

Attributes

carrier_data[RW]

@return [EdiParser::CarrierData] the parsed carrier data object.

document_header[RW]

@return [EdiParser::DocumentHeader] the parsed document header object.

interchange_header[RW]

@return [EdiParser::InterchangeHeader] the parsed interchange header object.

ocurrences[RW]

@return [Array<EdiParser::Ocurrence>] the array of parse ocurrences object.

Public Class Methods

new(attributes = {}) click to toggle source
# File lib/edi_parser/edi_file.rb, line 16
def initialize(attributes = {})
  attributes.each do |key, value|
    __send__("#{key}=", value)
  end
end
parse(file) click to toggle source
# File lib/edi_parser/edi_file.rb, line 22
def self.parse(file)
  raise InvalidEdiFileError unless File.exists?(file)

  edi_file = EdiFile.new

  File.open(file) do |f|
    edi_file.interchange_header = InterchangeHeader.parse(f.readline)
    edi_file.document_header = DocumentHeader.parse(f.readline)
    edi_file.carrier_data = CarrierData.parse(f.readline)

    edi_file.ocurrences = []
    f.readlines.each do |line|
      ocurrence = Ocurrence.parse(line)
      edi_file.ocurrences << ocurrence unless ocurrence.nil?
    end
  end

  edi_file
end