Class ConfigFile
In: lib/config_file.rb
Parent: SimpleDelegator

Methods

Classes and Modules

Class ConfigFile::FormatError

Attributes

default_config  [R] 

Public Class methods

[Source]

# File lib/config_file.rb, line 21
  def initialize(filename, default_config=nil)
    @filename = Pathname.new(filename)
    @default_config = default_config.freeze
    __load__
  end

Public Instance methods

[Source]

# File lib/config_file.rb, line 27
  def __load__(&block)
    config = nil
    if @filename.exist?
      @filename.open do |f|
        f.flock(File::LOCK_EX)
        config = real_load(f)
        f.flock(File::LOCK_UN)
      end
      block ? block[config] : check_config(config)
      config.freeze
    else
      if $VERBOSE
        Kernel.warn('warning: use default configuration because no ' +
                    'configuration file has been found')
      end
      config = @default_config
    end
    __setobj__(config)
  end

Protected Instance methods

Raise a FormatError if the loaded configuration do not fit the format

[Source]

# File lib/config_file.rb, line 49
  def check_config(config)
  end

You can override it to change arguments or Yaml parsing command.

[Source]

# File lib/config_file.rb, line 54
  def real_load(io)
    YAML::load(io)
  end

[Validate]