class EdifactConverter::XML112EDI::SegmentChecks

Public Instance Methods

escape_subelms(nodeset) click to toggle source
# File lib/edifact_converter/xml112edi/segment_checks.rb, line 21
def escape_subelms(nodeset)
  nodeset.each do |elm|
    elm.content = escape_text elm.text unless elm['base64']
  end
end
is_segment(nodeset) click to toggle source
# File lib/edifact_converter/xml112edi/segment_checks.rb, line 6
def is_segment(nodeset)
  (nodeset.first.name =~ /\p{Upper}{3}/) == 0
end
is_segmentgroup(nodeset) click to toggle source
# File lib/edifact_converter/xml112edi/segment_checks.rb, line 10
def is_segmentgroup(nodeset)
  (nodeset.first.name =~ /S[0-9]{2}/) == 0
end
valid_elms(nodeset) click to toggle source
# File lib/edifact_converter/xml112edi/segment_checks.rb, line 14
def valid_elms(nodeset)
  nodeset.each do |elm|
    elm.children = pop_last_empty(elm.children)
  end
  pop_last_empty nodeset
end

Private Instance Methods

escape_text(text) click to toggle source
# File lib/edifact_converter/xml112edi/segment_checks.rb, line 36
def escape_text(text)
  text.gsub(/[\+\'\:\?]/) {|s| "?#{s}"} 
end
pop_last_empty(nodeset) click to toggle source
# File lib/edifact_converter/xml112edi/segment_checks.rb, line 29
def pop_last_empty(nodeset)
  while nodeset.size > 0 && nodeset.last.children.size == 0
    nodeset.pop
  end
  nodeset
end