Class: Ecogem::Util::Config
- Inherits:
-
Object
- Object
- Ecogem::Util::Config
show all
- Defined in:
- lib/ecogem/util/config.rb,
lib/ecogem/util/config/entry.rb,
lib/ecogem/util/config/value.rb,
lib/ecogem/util/config/value_container.rb
Defined Under Namespace
Classes: Entry, Value, ValueContainer
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(base, path) ⇒ Config
Returns a new instance of Config.
36
37
38
39
|
# File 'lib/ecogem/util/config.rb', line 36
def initialize(base, path)
@base = base
@path = ::File.expand_path(path)
end
|
Class Method Details
.entries ⇒ Object
32
33
34
|
# File 'lib/ecogem/util/config.rb', line 32
def self.entries
@entries ||= {}
end
|
.entry(key) ⇒ Object
19
20
21
22
|
# File 'lib/ecogem/util/config.rb', line 19
def self.entry(key)
e = ::Ecogem::Util::Config::Entry.create(self, key)
entries[key] = e
end
|
.entry_namespace(ns) ⇒ Object
15
16
17
|
# File 'lib/ecogem/util/config.rb', line 15
def self.entry_namespace(ns)
entry_namespaces << ns
end
|
.entry_namespaces ⇒ Object
11
12
13
|
# File 'lib/ecogem/util/config.rb', line 11
def self.entry_namespaces
@entry_namespaces ||= []
end
|
.find_entry_class(key) ⇒ Object
24
25
26
27
28
29
30
|
# File 'lib/ecogem/util/config.rb', line 24
def self.find_entry_class(key)
pascal = key.to_s.split(/_/).map{|i| i[0].upcase + i[1..-1]}.join('')
entry_namespaces.reverse.each do |ns|
return ns.const_get(pascal, false) if ns.const_defined?(pascal, false)
end
nil
end
|
Instance Method Details
#dir ⇒ Object
41
42
43
|
# File 'lib/ecogem/util/config.rb', line 41
def dir
@dir ||= ::File.dirname(@path)
end
|
#save ⇒ Object
57
58
59
|
# File 'lib/ecogem/util/config.rb', line 57
def save
::File.write @path, value_container.values_to_h.to_yaml
end
|
#values ⇒ Object
49
50
51
|
# File 'lib/ecogem/util/config.rb', line 49
def values
@values ||= value_container.proxy
end
|