Sha256: 819ae2e4b12542fab0291765d1ff0e9e39ed3431e8fd46f8e576215cbd396109

Contents?: true

Size: 1.61 KB

Versions: 2

Compression:

Stored size: 1.61 KB

Contents

module Fog
  module Parsers
    module Terremark

      class GetInternetServices < Fog::Parsers::Base

        def reset
          @in_public_ip_address = false
          @internet_service = {}
          @response = { 'InternetServices' => [] }
        end

        def start_element(name, attributes)
          @value = ''
          case name
          when 'PublicIPAddress'
            @in_public_ip_address = true
          end
        end

        def end_element(name)
          case name
          when 'Description', 'Protocol'
            @internet_service[name] = @value
          when 'Enabled'
            if @value == 'true'
              @internet_service[name] = true
            else
              @internet_service[name] = false
            end
          when 'Href', 'Name'
            if @in_public_ip_address
              @internet_service['PublicIpAddress'] ||= {}
              @internet_service['PublicIpAddress'][name] = @value
            else
              @internet_service[name] = @value
            end
          when 'Id'
            if @in_public_ip_address
              @internet_service['PublicIpAddress'] ||= {}
              @internet_service['PublicIpAddress'][name] = @value.to_i
            else
              @internet_service[name] = @value.to_i
            end
          when 'InternetService'
            @response['InternetServices'] << @internet_service
            @internet_service = {}
          when 'Port', 'Timeout'
            @internet_service[name] = @value.to_i
          when 'PublicIPAddress'
            @in_public_ip_address = false
          end
        end
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fog-0.0.75 lib/fog/terremark/parsers/get_internet_services.rb
fog-0.0.74 lib/fog/terremark/parsers/get_internet_services.rb