mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00

services will still be required when you: * require them yourself * require the entire provider (which requires all services)
34 lines
727 B
Ruby
34 lines
727 B
Ruby
module Fog
|
|
|
|
def self.providers
|
|
@providers ||= {}
|
|
end
|
|
|
|
def self.providers=(new_providers)
|
|
@providers = new_providers
|
|
end
|
|
|
|
module Provider
|
|
|
|
def self.extended(base)
|
|
provider = base.to_s.split('::').last
|
|
Fog.providers[provider.downcase.to_sym] = provider
|
|
end
|
|
|
|
def [](service_key)
|
|
eval(@services_registry[service_key]).new
|
|
end
|
|
|
|
def service(new_service, 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('::')
|
|
end
|
|
|
|
def services
|
|
@services_registry.keys
|
|
end
|
|
|
|
end
|
|
end
|