Sha256: f8cbd9de66ec51f42346ee13d4cbe0398e691d5a07f27a16f4247beb13a246b8

Contents?: true

Size: 1.57 KB

Versions: 10

Compression:

Stored size: 1.57 KB

Contents

module Fog
  module Parsers
    module Terremark

      class InternetService < Fog::Parsers::Base

        def reset
          @in_public_ip_address = false
          @response = { 'PublicIpAddress' => {} }
        end

        def start_element(name, attributes)
          @value = ''
          case name
          when 'Href'
            data = {}
            until attributes.empty?
              data[attributes.shift] = attributes.shift
            end
            if @in_public_ip_address
              @response['PublicIpAddress'][name] = data
            else
              @response[name] = data
            end
          when 'PublicIpAddress'
            @in_public_ip_address = true
          end
        end

        def end_element(name)
          case name
          when 'Description', 'Protocol'
            @response[name] = @value
          when 'Enabled'
            if @value == 'false'
              @response[name] = false
            else
              @response[name] = true
            end
          when 'Id'
            if @in_public_ip_address
              @response['PublicIpAddress'][name] = @value.to_i
            else
              @response[name] = @value.to_i
            end
          when 'Name'
            if @in_public_ip_address
              @response['PublicIpAddress'][name] = @value
            else
              @response[name] = @value
            end
          when 'Port', 'Timeout'
            @response[name] = @value.to_i
          when 'PublicIpAddress'
            @in_public_ip_address = false
          end
        end

      end

    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
fog-0.0.77 lib/fog/terremark/parsers/internet_service.rb
fog-0.0.76 lib/fog/terremark/parsers/internet_service.rb
fog-0.0.75 lib/fog/terremark/parsers/internet_service.rb
fog-0.0.74 lib/fog/terremark/parsers/internet_service.rb
fog-0.0.73 lib/fog/terremark/parsers/internet_service.rb
fog-0.0.72 lib/fog/terremark/parsers/internet_service.rb
fog-0.0.71 lib/fog/terremark/parsers/internet_service.rb
fog-0.0.70 lib/fog/terremark/parsers/internet_service.rb
fog-0.0.69 lib/fog/terremark/parsers/internet_service.rb
fog-0.0.68 lib/fog/terremark/parsers/internet_service.rb