Sha256: 8d9edc5b6f0c49498cbb740c3601051a8f27a46604740f434c6e57ed5e8f4445

Contents?: true

Size: 1.69 KB

Versions: 86

Compression:

Stored size: 1.69 KB

Contents

module Fog
  module Parsers
    module DNS
      module Zerigo

        class GetZone < Fog::Parsers::Base

          def reset
            @host = {}
            @hosts = []
            @response = {}
            @in_hosts = false
          end

          def start_element(name, attrs = [])
            super(name, attrs)
            #look out for start of <hosts> section
            #needed as some of the tags have the same name as the parent <zone> section
            if name == 'hosts'
              @in_hosts= true
            end
          end
          
          def end_element(name)
            if (@in_hosts)
              #in hosts part of response
              case name
              when 'id', 'zone-id'
                @host[name] = value.to_i
              when 'priority', 'ttl'
                @host[name] = value.to_i if value
              when 'data', 'fqdn', 'host-type', 'hostname', 'notes', 'zone-id', 'created-at', 'updated-at'
                @host[name] = value
              when 'host'
                @hosts << @host
                @host = {}
              when 'hosts'
                @response[name] = @hosts
                @in_hosts = false
              end
            else
              #in zone part of data
              case name
              when 'default-ttl', 'id', 'nx-ttl', 'hosts-count'
                @response[name] = value.to_i
              when 'created-at', 'custom-nameservers', 'custom-ns', 'domain', 'hostmaster', 'notes', 'ns1', 'ns-type', 'slave-nameservers', 'tag-list', 'updated-at', 'hosts', 'axfr-ips', 'restrict-axfr'
                @response[name] = value
              end
            end
            
          end

        end

      end
    end
  end
end

Version data entries

86 entries across 86 versions & 16 rubygems

Version Path
fog-maestrodev-1.20.0.20140305101839 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.20.0.20140305101305 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.19.0.20140212012611 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-1.20.0 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.19.0.20140110004459 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.19.0.20140110003812 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.19.0.20140109202555 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.19.0.20140107192102 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.19.0.20140107142106 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.19.0.20131219203941 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.18.0.20131219193542 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-1.19.0 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.18.0.20131219033443 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.18.0.20131219032002 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.18.0.20131219030716 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.18.0.20131219022322 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.18.0.20131218202447 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.18.0.20131209091424 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.18.0.20131209090811 lib/fog/zerigo/parsers/dns/get_zone.rb
fog-maestrodev-1.18.0.20131206115947 lib/fog/zerigo/parsers/dns/get_zone.rb