module Deltacloud::Helpers::Drivers

Public Class Methods

included(klass) click to toggle source

This will make the Driver helpers, like 'driver' accessible on class level

# File lib/deltacloud/helpers/driver_helper.rb, line 23
def Drivers.included(klass)
  klass.extend Deltacloud::Helpers::Drivers
end

Public Instance Methods

driver() click to toggle source
# File lib/deltacloud/helpers/driver_helper.rb, line 52
def driver
  $:.unshift File.join(File.dirname(__FILE__), '..', '..')
  begin
    driver_class
  rescue NameError => e
    require_relative(driver_source_name) ? retry : raise(LoadError.new(e.message))
  rescue LoadError => e
    raise "[ERROR] The driver '#{driver_name}' is unknown or not installed (#{driver_source_name})\n" +
      "\n#{e.message}\n"
  end
end
driver_class() click to toggle source
# File lib/deltacloud/helpers/driver_helper.rb, line 47
def driver_class
  m = Deltacloud::Drivers.const_get(driver_class_name)
  m.const_get(driver_class_name + "Driver").new
end
driver_class_name() click to toggle source
# File lib/deltacloud/helpers/driver_helper.rb, line 39
def driver_class_name
  driver_name.camelize
end
driver_name() click to toggle source
# File lib/deltacloud/helpers/driver_helper.rb, line 31
def driver_name
  Thread.current[:driver] ||= Deltacloud.default_frontend.default_driver.to_s
end
driver_source_name() click to toggle source
# File lib/deltacloud/helpers/driver_helper.rb, line 43
def driver_source_name
  File.join('..', 'drivers', driver_name, driver_name + '_driver.rb')
end
driver_symbol() click to toggle source
# File lib/deltacloud/helpers/driver_helper.rb, line 27
def driver_symbol
  driver_name.to_sym
end
provider_name() click to toggle source
# File lib/deltacloud/helpers/driver_helper.rb, line 35
def provider_name
  Thread.current[:provider] || ENV['API_PROVIDER']
end