Module: Fog::Provider

Included in:
AWS, Atmos, BareMetalCloud, Bluebox, Brightbox, Clodo, Cloudstack, DNSMadeEasy, DNSimple, Dreamhost, Dynect, Ecloud, Glesys, GoGrid, Google, HP, IBM, InternetArchive, Joyent, Libvirt, Linode, Local, Ninefold, OpenStack, Ovirt, Rackspace, RiakCS, Serverlove, StormOnDemand, Vcloud, Vmfusion, Voxel, Vsphere, XenServer, Zerigo
Defined in:
lib/fog/core/provider.rb

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ (Object) extended(base)



13
14
15
16
# File 'lib/fog/core/provider.rb', line 13

def self.extended(base)
  provider = base.to_s.split('::').last
  Fog.providers[provider.downcase.to_sym] = provider
end

Instance Method Details

- (Object) [](service_key)



18
19
20
# File 'lib/fog/core/provider.rb', line 18

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

- (Object) service(new_service, path, constant_string)



22
23
24
25
26
27
28
# File 'lib/fog/core/provider.rb', line 22

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

- (Object) services



30
31
32
# File 'lib/fog/core/provider.rb', line 30

def services
  @services_registry.keys
end