Module: Dumpr::Driver

Defined in:
lib/dumpr/driver.rb,
lib/dumpr/driver/mysql.rb

Defined Under Namespace

Classes: Base, Mysql

Class Method Summary collapse

Class Method Details

.find(driver) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/dumpr/driver.rb', line 9

def find(driver)
  driver_file = "dumpr/driver/#{driver}"
  require(driver_file)
  const_ar = driver.to_s.split("/").reject{|i| i==""}.collect {|i| i.capitalize.gsub(/_(.)/) {$1.upcase} }
  klass_str = const_ar.join('::')
  begin
    klass = const_ar.inject(self) do |mod, const_name|
      mod.const_get(const_name)
    end
  rescue NameError => e
    raise e
    raise BadConfig, "could not find `#{klass_str}' in `#{driver_file}'"
  end
  raise BadConfig, "#{klass.name} is not a type of Dumpr::Driver!" unless klass < Dumpr::Driver::Base
  return klass
rescue LoadError
  raise BadConfig, "failed to load '#{driver_file}' !'"
end