class OpenSRS::XmlProcessor::Nokogiri

Public Class Methods

build(data) click to toggle source
# File lib/opensrs/xml_processor/nokogiri.rb, line 11
def self.build(data)
  builder = ::Nokogiri::XML::Builder.new

  envelope   = ::Nokogiri::XML::Node.new("OPS_envelope", builder.doc)
  header     = ::Nokogiri::XML::Node.new("header", builder.doc)
  version    = ::Nokogiri::XML::Node.new("version", builder.doc)
  body       = ::Nokogiri::XML::Node.new("body", builder.doc)
  data_block = ::Nokogiri::XML::Node.new("data_block", builder.doc)
  other_data = encode_data(data, builder.doc)
  builder.doc << envelope << header << version << '0.9'
  envelope << body << data_block << other_data
  return builder.to_xml
end

Protected Class Methods

data_block_element(response) click to toggle source
# File lib/opensrs/xml_processor/nokogiri.rb, line 27
def self.data_block_element(response)
  doc = ::Nokogiri::XML(response)
  return doc.xpath('//OPS_envelope/body/data_block/*')
end
decode_dt_array_data(element) click to toggle source
# File lib/opensrs/xml_processor/nokogiri.rb, line 32
def self.decode_dt_array_data(element)
  dt_array = []

  element.children.each do |item|
    next if item.content.strip.empty?
    dt_array[item.attributes["key"].value.to_i] = decode_data(item.children)
  end

  return dt_array
end
decode_dt_assoc_data(element) click to toggle source
# File lib/opensrs/xml_processor/nokogiri.rb, line 43
def self.decode_dt_assoc_data(element)
  dt_assoc = {}

  element.children.each do |item|
    next if item.content.strip.empty?
    dt_assoc[item.attributes["key"].value] = decode_data(item.children)
  end

  return dt_assoc
end
new_element(element_name, container) click to toggle source
# File lib/opensrs/xml_processor/nokogiri.rb, line 54
def self.new_element(element_name, container)
  return ::Nokogiri::XML::Node.new(element_name.to_s, container)
end