module Dumpr::Driver

Public Class Methods

find(driver) click to toggle source
# 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

Private Instance Methods

find(driver) click to toggle source
# 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