Method: Dacs::AppConfig.init!

Defined in:
lib/dacs/app_config.rb

.init!(app_name, options = {}) ⇒ Object

Usage:

Dacs::AppConfig.init!('example', 
  :environment => 'development',
  :logger      => Logger.new($stdout)) do |config|

  config.key 'foo', :default => 'default_foo'
  config.key 'bar', :default => 'default_bar'
  config.key 'baz', :default => 'default_baz'
end


59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/dacs/app_config.rb', line 59

def self.init!(app_name, options={})
  @instance = nil
  @@options = options.merge(:app_name => app_name)
  @@options[:app_root]     ||= Pathname(Dir.pwd)
  @@options[:config_path]  ||= @@options[:app_root] + 'config' + "#{app_name}.yml"
  @@options[:logger]       ||= ::Logger.new($stderr)
  @@options[:environment]  ||= :development
  @@options[:defaults]     ||= {}
  @@definition_location    = caller[0]
  if block_given?
    schema = Schema.new
    yield(schema)
    @@schema = schema
  else
    @@schema = PermissiveSchema.new(@@options[:defaults])
  end
  self.instance
end