module Fog::Provider
Public Class Methods
extended(base)
click to toggle source
# File lib/fog/core/provider.rb, line 12 def extended(base) provider = base.to_s.split("::").last Fog.providers[provider.downcase.to_sym] = provider Fog.providers[underscore_name(provider).to_sym] = provider end
Private Class Methods
underscore_name(string)
click to toggle source
# File lib/fog/core/provider.rb, line 20 def underscore_name(string) string.gsub(/::/, '/'). gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). gsub(/([a-z\d])([A-Z])/,'\1_\2'). tr("-", "_"). downcase end
Public Instance Methods
[](service_key)
click to toggle source
# File lib/fog/core/provider.rb, line 29 def [](service_key) eval(@services_registry[service_key]).new end
service(new_service, constant_string)
click to toggle source
# File lib/fog/core/provider.rb, line 33 def service(new_service, constant_string) Fog.services[new_service] ||= [] Fog.services[new_service] |= [to_s.split("::").last.downcase.to_sym] @services_registry ||= {} @services_registry[new_service] = service_klass(constant_string) end
service_klass(constant_string)
click to toggle source
Returns service constant path, with provider, as string. If “provider::service” is defined (the preferred format) then it returns that string, otherwise it returns the deprecated string “service::provider”.
# File lib/fog/core/provider.rb, line 47 def service_klass(constant_string) if const_defined?([to_s, constant_string].join("::")) [to_s, constant_string].join("::") else provider = to_s.split("::").last Fog::Logger.deprecation("Unable to load #{[to_s, constant_string].join("::")}") Fog::Logger.deprecation( format( Fog::ServicesMixin::E_SERVICE_PROVIDER_CONSTANT, service: constant_string, provider: provider ) ) ['Fog', constant_string, provider].join("::") end end
services()
click to toggle source
# File lib/fog/core/provider.rb, line 40 def services @services_registry.keys end