Module: Staticd::Database

Defined in:
lib/staticd/database.rb

Class Method Summary collapse

Class Method Details

.setup(environment, database_url) ⇒ Object

Initialize the database.

It support the test, development and production environment. Database logger is silent in test environment, verbose in development environment, and only displaying errors in production.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/staticd/database.rb', line 16

def self.setup(environment, database_url)
  raise "No environment given for the database" unless environment
  raise "No database_url given" unless database_url

  environment = environment.to_sym

  log_enabled, destination, level =
    case environment
    when :development
      [true, '$stdout', :debug]
    when :production
      [true, '$stderr', :error]
    else
      [false]
    end

  if log_enabled
    DataMapper::Logger.new(eval(destination), level)
  end

  DataMapper.setup(:default, database_url)
  DataMapper.finalize
  environment == :test ? DataMapper.auto_migrate! : DataMapper.auto_upgrade!
end