Module: Dumpr::Driver
- Defined in:
- lib/dumpr/driver.rb,
lib/dumpr/driver/mysql.rb,
lib/dumpr/driver/postgres.rb
Defined Under Namespace
Classes: Base, Mysql, Postgres
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 |