Sha256: 8a31b4fad3f4c7a3d413423cdcbc8bde50392c77e840e085343c0c2a872bedb5

Contents?: true

Size: 1.42 KB

Versions: 33

Compression:

Stored size: 1.42 KB

Contents

module Vcloud
  class << self

    def services
      if Fog.credentials.has_key?(:vcloud)
        Fog.credentials[:vcloud].keys.sort { |a,b| a.to_s <=> b.to_s }
      else
        []
      end
    end

    def registered_services
      Vcloud.services.map { |service| ":" << service.to_s }.join(", ")
    end

    def complete_service_options?(service)
      if Fog.credentials.has_key?(:vcloud)
        if Fog.credentials[:vcloud].has_key?(service)
          service = Fog.credentials[:vcloud][service]
          if Fog::Vcloud.requirements.all? { |option| service.has_key?(option) }
            return true
          end
        end
      end
      false
    end

    if Vcloud.services.any? && Vcloud.services.all? { |service| Vcloud.complete_service_options?(service) }

      def initialized?
        true
      end

      def startup_notice
        Formatador.display_line("You have access to the following Vcloud services: #{Vcloud.registered_services}.")
      end

      def [](service)
        @@connections ||= Hash.new do |hash, key|
          if credentials = Fog.credentials[:vcloud][key]
            hash[key] = eval(credentials[:module]).new(credentials)
          else
            raise ArgumentError.new("Unregistered service: :#{key}. Registered services are: #{Vcloud.registered_services}")
          end
        end
        @@connections[service]
      end

    else

      def initialized?
        false
      end

    end
  end
end

Version data entries

33 entries across 33 versions & 2 rubygems

Version Path
fog-0.3.31 lib/fog/vcloud/bin.rb
fog-0.3.30 lib/fog/vcloud/bin.rb
fog-0.3.29 lib/fog/vcloud/bin.rb
fog-0.3.28 lib/fog/vcloud/bin.rb
fog-0.3.27 lib/fog/vcloud/bin.rb
fog-0.3.26 lib/fog/vcloud/bin.rb
fog-0.3.25 lib/fog/vcloud/bin.rb
fog-0.3.24 lib/fog/vcloud/bin.rb
bbcloud-0.8.1 lib/bbcloud/vendor/fog-0.3.23/lib/fog/vcloud/bin.rb
fog-0.3.23 lib/fog/vcloud/bin.rb
fog-0.3.22 lib/fog/vcloud/bin.rb
fog-0.3.21 lib/fog/vcloud/bin.rb
fog-0.3.20 lib/fog/vcloud/bin.rb
fog-0.3.19 lib/fog/vcloud/bin.rb
fog-0.3.18 lib/fog/vcloud/bin.rb
fog-0.3.17 lib/fog/vcloud/bin.rb
fog-0.3.16 lib/fog/vcloud/bin.rb
fog-0.3.15 lib/fog/vcloud/bin.rb
fog-0.3.14 lib/fog/vcloud/bin.rb
fog-0.3.13 lib/fog/vcloud/bin.rb