class Eancom::Parser::Document
Attributes
document[R]
file[R]
Public Class Methods
new(file:)
click to toggle source
# File lib/eancom/parser/document.rb, line 8 def initialize(file:) @file = file @document = Eancom::Edifact::Document.new end
Public Instance Methods
parse()
click to toggle source
# File lib/eancom/parser/document.rb, line 13 def parse content.split(segment_delimiter).each do |segment_string| segment = Parser::Segment.new(segment_string) segment = segment.parse add(segment) end @document end
Private Instance Methods
add(segment)
click to toggle source
# File lib/eancom/parser/document.rb, line 24 def add(segment) if segment.is_header? @document.add_to_header(segment) elsif segment.is_body? @document.add_to_body(segment) elsif segment.is_footer? @document.add_to_body(segment) else raise SegmentTypeNotDefined end end
composite_delimiter()
click to toggle source
# File lib/eancom/parser/document.rb, line 47 def composite_delimiter DELIMITERS[:data] end
content()
click to toggle source
# File lib/eancom/parser/document.rb, line 36 def content @content ||= begin @file.rewind string = convert(@file.read) string.delete!("\n") string.delete!("\r") string.chomp! string end end
convert(string)
click to toggle source
# File lib/eancom/parser/document.rb, line 55 def convert(string) string.encode('UTF-8') end
segment_delimiter()
click to toggle source
# File lib/eancom/parser/document.rb, line 51 def segment_delimiter DELIMITERS[:segment] end