Sha256: a6d1995d7f7b79fddbfc8cb9cfe31a5c2340645a25a025ebb0345ed272c1a50a

Contents?: true

Size: 644 Bytes

Versions: 4

Compression:

Stored size: 644 Bytes

Contents

module Fog

  def self.providers
    @providers ||= []
  end

  module Provider

    def self.extended(base)
      Fog.providers << base.to_s.split('::').last
    end

    def [](service_key)
      eval(@services_registry[service_key]).new
    end

    def service(new_service, path, constant_string)
      Fog.services[new_service] ||= []
      Fog.services[new_service] |= [self.to_s.split('::').last.downcase.to_sym]
      @services_registry ||= {}
      @services_registry[new_service] = [self.to_s, constant_string].join('::')
      require File.join('fog', path)
    end

    def services
      @services_registry.keys
    end

  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
brightbox-cli-0.16.0 lib/brightbox-cli/vendor/fog/lib/fog/core/provider.rb
brightbox-cli-0.15.0 lib/brightbox-cli/vendor/fog/lib/fog/core/provider.rb
tag-fog-1.0.1 lib/fog/core/provider.rb
fog-1.0.0 lib/fog/core/provider.rb