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
# 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
# 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
# File lib/deltacloud/helpers/driver_helper.rb, line 39 def driver_class_name driver_name.camelize end
# File lib/deltacloud/helpers/driver_helper.rb, line 31 def driver_name Thread.current[:driver] ||= Deltacloud.default_frontend.default_driver.to_s end
# File lib/deltacloud/helpers/driver_helper.rb, line 43 def driver_source_name File.join('..', 'drivers', driver_name, driver_name + '_driver.rb') end
# File lib/deltacloud/helpers/driver_helper.rb, line 27 def driver_symbol driver_name.to_sym end
# File lib/deltacloud/helpers/driver_helper.rb, line 35 def provider_name Thread.current[:provider] || ENV['API_PROVIDER'] end