Module: Rubber::Cloud

Defined in:
lib/rubber/cloud.rb,
lib/rubber/cloud/aws.rb,
lib/rubber/cloud/fog.rb,
lib/rubber/cloud/base.rb,
lib/rubber/cloud/aws/vpc.rb,
lib/rubber/cloud/generic.rb,
lib/rubber/cloud/vagrant.rb,
lib/rubber/cloud/vsphere.rb,
lib/rubber/cloud/aws/base.rb,
lib/rubber/cloud/aws/classic.rb,
lib/rubber/cloud/fog_storage.rb,
lib/rubber/cloud/digital_ocean.rb,
lib/rubber/cloud/aws/table_store.rb

Defined Under Namespace

Modules: Aws Classes: Base, DigitalOcean, Fog, FogStorage, Generic, Vagrant, Vsphere

Class Method Summary collapse

Class Method Details

.get_provider(provider, env, capistrano) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/rubber/cloud.rb', line 6

def self.get_provider(provider, env, capistrano)
  require "rubber/cloud/#{provider}"
  provider_env = env.cloud_providers[provider]

  # Check to see if we have a Rubber::Cloud::Provider::Factory class.  If
  # not, fall back to Rubber::Cloud::Provider
  begin
    factory = Rubber::Cloud.const_get(Rubber::Util.camelcase(provider))::Factory
    return factory.get_provider(provider_env, capistrano)
  rescue NameError
    clazz = Rubber::Cloud.const_get(Rubber::Util.camelcase(provider))
    return clazz.new(provider_env, capistrano)
  end
end