class Ecogem::Util::Config

Public Class Methods

entries() click to toggle source
# File lib/ecogem/util/config.rb, line 32
def self.entries
  @entries ||= {}
end
entry(key) click to toggle source
# 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) click to toggle source
# File lib/ecogem/util/config.rb, line 15
def self.entry_namespace(ns)
  entry_namespaces << ns
end
entry_namespaces() click to toggle source
# File lib/ecogem/util/config.rb, line 11
def self.entry_namespaces
  @entry_namespaces ||= []
end
find_entry_class(key) click to toggle source
# 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
new(base, path) click to toggle source
# File lib/ecogem/util/config.rb, line 36
def initialize(base, path)
  @base = base
  @path = ::File.expand_path(path)
end

Public Instance Methods

dir() click to toggle source
# File lib/ecogem/util/config.rb, line 41
def dir
  @dir ||= ::File.dirname(@path)
end
save() click to toggle source
# File lib/ecogem/util/config.rb, line 57
def save
  ::File.write @path, value_container.values_to_h.to_yaml
end
values() click to toggle source
# File lib/ecogem/util/config.rb, line 49
def values
  @values ||= value_container.proxy
end

Protected Instance Methods

value_container() click to toggle source
# File lib/ecogem/util/config.rb, line 45
          def value_container
  @value_conatiner ||= ::Ecogem::Util::Config::ValueContainer.new(@base && @base.value_container, self, load || {})
end

Private Instance Methods

load() click to toggle source
# File lib/ecogem/util/config.rb, line 53
        def load
  ::YAML.load(::File.read(@path)) if ::File.file?(@path)
end