module XMLConvert

Public Class Methods

to_xml(arr_net) click to toggle source
# File lib/dhcp_parser/xml.rb, line 4
def self.to_xml(arr_net)
  if arr_net.empty?
    return false
  else
    xml = "<subnets>\n"

    arr_net.each do |net|
      xml += "\s\s<subnet>\n"
      # Set subnet
      xml += "\s\s\s\s<net>#{net.subnet}</net>\n"
      # Set netmask
      xml += "\s\s\s\s<mask>#{net.netmask}</mask>\n"

      # Set option
      xml += "\s\s\s\s<option>\n"
      net.option.each do |key, value|
        xml += "\s\s\s\s\s\s<#{key}>#{value}</#{key}>\n"
      end 
      xml += "\s\s\s\s</option>\n"

      # Set differ
      if net.differ["authoritative"].nil?
        xml += "\s\s\s\s<authoritative>false<authoritative>\n"
      end
      net.differ.each do |key, value|
        xml += "\s\s\s\s<#{key}>#{value}</#{key}>\n"
      end

      # Set pool
      xml += "\s\s\s\s<pool>\n"
      net.pool.each do |key, value|
        if key.eql?("range")
          xml += "\s\s\s\s\s\s<#{key}>\n"
          xml += "\s\s\s\s\s\s\s\s<min>#{value["min"]}</min>\n"
          xml += "\s\s\s\s\s\s\s\s<max>#{value["max"]}</max>\n"
          xml += "\s\s\s\s\s\s</#{key}>\n"
        elsif key.eql?("hosts")
          xml += "\s\s\s\s\s\s<#{key}>\n"
          value.each do |h|
            xml += "\s\s\s\s\s\s\s\s<host>\n"
            xml += "\s\s\s\s\s\s\s\s\s\s<name>#{h.host}</name>\n"
            xml += "\s\s\s\s\s\s\s\s\s\s<ethernet>#{h.hardware_ethernet}</ethernet>\n"
            xml += "\s\s\s\s\s\s\s\s\s\s<address>#{h.fixed_address}</address>\n"
            xml += "\s\s\s\s\s\s\s\s</host>\n"
          end
          xml += "\s\s\s\s\s\s</#{key}>\n"
        else
          xml += "\s\s\s\s\s\s<#{key}>#{value}</#{key}>\n"
        end
      end
      xml += "\s\s\s\s</pool>\n"

      # end subnet
      xml += "\s\s</subnet>\n"
    end

    # end subnets
    xml += "</subnets>"
  end
end
write_file_xml(file_name, xml_string) click to toggle source
# File lib/dhcp_parser/xml.rb, line 65
def self.write_file_xml(file_name, xml_string)
  if xml_string.empty? && file_name.empty?
    return false
  else
    file = File.open("#{file_name}", "w+")
    file.write(xml_string)
    file.close
    return true
  end
end