class EdifactConverter::XML112EDI::EdiHandler
Attributes
binary[RW]
edifact[RW]
first_value[RW]
first_value?[RW]
linebreak[RW]
processing_binary[RW]
processing_binary?[RW]
Public Class Methods
new(nexthandler = nil)
click to toggle source
Calls superclass method
EdifactConverter::EmptyHandler::new
# File lib/edifact_converter/xml112edi/edi_handler.rb, line 22 def initialize(nexthandler = nil) self.linebreak = "\n" if EdifactConverter::Configuration.format_edi super end
Public Instance Methods
binary?()
click to toggle source
# File lib/edifact_converter/xml112edi/edi_handler.rb, line 69 def binary? binary.any? end
endSegment()
click to toggle source
# File lib/edifact_converter/xml112edi/edi_handler.rb, line 61 def endSegment if processing_binary? self.processing_binary = false else edifact.write("'#{linebreak}") end end
startDocument()
click to toggle source
# File lib/edifact_converter/xml112edi/edi_handler.rb, line 27 def startDocument self.edifact = nil binary.clear edifact.write("UNA:+.? '#{linebreak}") end
startElement()
click to toggle source
# File lib/edifact_converter/xml112edi/edi_handler.rb, line 41 def startElement unless processing_binary? edifact.write('+') self.first_value = true end end
startSegment(name, position = nil)
click to toggle source
# File lib/edifact_converter/xml112edi/edi_handler.rb, line 33 def startSegment(name, position = nil) if name == "OBJ" self.processing_binary = true else edifact.write(name) end end
value(text)
click to toggle source
# File lib/edifact_converter/xml112edi/edi_handler.rb, line 48 def value(text) if processing_binary? id = binary_id binary[id] = text text = id elsif first_value self.first_value = false else edifact.write(':') unless first_value? end edifact.write text.to_s.gsub(/([\?:\'\+])/,'?\1') end
Private Instance Methods
binary_id()
click to toggle source
# File lib/edifact_converter/xml112edi/edi_handler.rb, line 79 def binary_id "@@BINARY#{SecureRandom.uuid}@@" end