Class: Kaiser::Plugins::Database

Inherits:
Kaiser::Plugin show all
Defined in:
lib/kaiser/plugins/database.rb

Instance Method Summary collapse

Methods inherited from Kaiser::Plugin

all_plugins, inherited, #initialize, loaded?, #method_missing

Constructor Details

This class inherits a constructor from Kaiser::Plugin

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Kaiser::Plugin

Instance Method Details

#on_initObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/kaiser/plugins/database.rb', line 8

def on_init
  @kaiserfile.define_singleton_method :def_db do |*args|
    args[0] = { args.first => {} } unless args.first.is_a? Hash

    option = args.first

    driver_name = option.keys.first.to_s

    begin
      require "kaiser/databases/#{driver_name}"
    rescue LoadError
      raise "Unknown database '#{driver_name}'"
    end

    driver_class = Kaiser::Databases.const_get(driver_name.camelize)
    db_driver = driver_class.new(option.values.first)

    db(db_driver.image_name, **db_driver.options_hash)
  end
end