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