Class: UcbRails::Configuration::Configuration

Inherits:
Object
  • Object
show all
Defined in:
app/models/ucb_rails/configuration/configuration.rb

Overview

Manage configuration from file. Per environment or overall.

Examples:

# config/config.yml
test:
  ldap:
    username: test_username
    password: test_password

ldap:
  username: top_username
  password: top_password

# in config/initializers/ucb_rails.rb  (e.g.)
config = UcbRails::Credentials.new

# in production -- pulls from top level, since no 'production' key
config.for('ldap') #=> { 'username' => 'top_username', 'password' => 'top_password' }

# in test -- pulls from 'test' key
config.for('ldap') #=> { 'username' => 'test_username', 'password' => 'test_password' }

Constant Summary collapse

FileNotFound =
Class.new(StandardError)
KeyNotFound =
Class.new(StandardError)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filename = Rails.root.join('config/config.yml')) ⇒ Configuration

Returns a new instance of Configuration.



31
32
33
34
# File 'app/models/ucb_rails/configuration/configuration.rb', line 31

def initialize(filename=Rails.root.join('config/config.yml'))
  self.config_filename = filename.to_s
  load_file
end

Instance Attribute Details

#config_filenameObject

Returns the value of attribute config_filename.



29
30
31
# File 'app/models/ucb_rails/configuration/configuration.rb', line 29

def config_filename
  @config_filename
end

#config_yamlObject

Returns the value of attribute config_yaml.



29
30
31
# File 'app/models/ucb_rails/configuration/configuration.rb', line 29

def config_yaml
  @config_yaml
end

Instance Method Details

#for(key) ⇒ Object

Return configuration value for key.

Parameters:

  • key (String)


38
39
40
# File 'app/models/ucb_rails/configuration/configuration.rb', line 38

def for(key)
  from_environment(key) || from_top_level(key)
end

#for!(key) ⇒ Object

Return configuration value for key.

Raises:

  • (UcbRails::Configuration::KeyNotFound)

    if key not in configuration file.



44
45
46
# File 'app/models/ucb_rails/configuration/configuration.rb', line 44

def for!(key)
  self.for(key) or raise(KeyNotFound, key.inspect)
end