module Configuration::ClassMethods

Public Instance Methods

for(name, options = nil, &block) click to toggle source
# File lib/configuration.rb, line 17
def for name, options = nil, &block
  name = name.to_s
  options = options.to_hash if options.is_a?( Configuration )

  if Table.has_key?(name)
    if options or block
      configuration = Table[name]
      Table[name] = DSL.evaluate(configuration, options || {}, &block)
    else
      Table[name]
    end
  else
    if options or block
      Table[name] = new name, options || {}, &block
    else
      load name
    end
  end
end
load(name) click to toggle source
# File lib/configuration.rb, line 47
def load name
  name = name.to_s
  name = name + '.rb' unless name[/\.rb$/]
  key = name.sub /\.rb$/, ''
  load_path = $LOAD_PATH.dup
  begin
    $LOAD_PATH.replace(path + load_path)
    ::Kernel.load name
  ensure
    $LOAD_PATH.replace load_path
  end
  Table[key]
end
path(*value) click to toggle source
# File lib/configuration.rb, line 37
def path *value
  return self.path = value.first unless value.empty?
  Path
end
path=(value) click to toggle source
# File lib/configuration.rb, line 42
def path= value
  Path.clear
  Path.replace [value].compact.flatten.join(File::PATH_SEPARATOR).split(File::PATH_SEPARATOR)
end