Module: TestConfig

Defined in:
lib/test_config.rb,
lib/test_config/version.rb,
lib/test_config/config_data.rb,
lib/test_config/config_file.rb,
lib/test_config/hash_methods.rb

Defined Under Namespace

Modules: HashMethods Classes: ConfigData, ConfigFile

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.configure!(options = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/test_config.rb', line 15

def self.configure!(options = {})
  opts = {
    :base_config      => 'default.yml',
    :source_directory => 'config/environments',
    :env_variable     => 'TEST_ENV'
  }.merge(options)

  @_configuration.clear!

  if opts[:base_config]
    @_configuration.load!("#{opts[:source_directory]}/#{opts[:base_config]}")
  end

  if opts[:env_variable] && ENV[opts[:env_variable]]
    ENV[opts[:env_variable]].split(/, */).each do |file|
      @_configuration.load!("#{opts[:source_directory]}/#{file}")
    end
  end
end

.dataObject



11
12
13
# File 'lib/test_config.rb', line 11

def self.data
  @_configuration.data
end

.has_key?(key) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/test_config.rb', line 43

def self.has_key?(key)
  data.has_key?(key)
end

.load!(file_path) ⇒ Object



35
36
37
# File 'lib/test_config.rb', line 35

def self.load!(file_path)
  @_configuration.load!(file_path)
end

.method_missing(name, default = nil, *args, &block) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'lib/test_config.rb', line 47

def self.method_missing(name, default = nil, *args, &block)
  if has_key?(name.to_sym)
    return data[name.to_sym]
  elsif default && default.is_a?(Hash) && default.has_key?(:or)
    return default[:or]
  else
    fail(NoMethodError, "Unknown configuration root: #{name}", caller)
  end
end

.read(file_path) ⇒ Object



39
40
41
# File 'lib/test_config.rb', line 39

def self.read(file_path)
  ConfigFile.new(file_path).data
end