class Perus::Options

Public Class Methods

new() click to toggle source
# File lib/perus/options.rb, line 5
def initialize
    @defaults = {}
end

Public Instance Methods

[](name) click to toggle source
# File lib/perus/options.rb, line 31
def [](name)
    @options[name]
end
load(path, defaults) click to toggle source
# File lib/perus/options.rb, line 9
def load(path, defaults)
    if File.exists?(path)
        user_options = IniParse.parse(IO.read(path))
    else
        user_options = {}
    end

    # options are only one level deep, so resolve conflicts
    # by just merging the two conflicting hashes again
    @options = defaults.merge(user_options) do |key, default, user|
        default.merge(user)
    end
end
method_missing(name, *params, &block) click to toggle source
# File lib/perus/options.rb, line 23
def method_missing(name, *params, &block)
    if @options.include?(name.to_s)
        @options[name.to_s]
    else
        @options['__anonymous__'][name.to_s]
    end
end