lib/ruby-conf.rb in ruby-conf-0.1.0 vs lib/ruby-conf.rb in ruby-conf-1.0.1
- old
+ new
@@ -1,5 +1,8 @@
+#
+#
+# @author Hollin Wilkins & Curtis Schofield
class RubyConf
@@configs = {}
class Config
def initialize
@@ -33,14 +36,33 @@
else
super
end
end
end
+ # Define a configuration:
+ #
+ # RubyConf.define "monkey" , :as => 'MyBonobo' do
+ # has_legs true
+ # number_arms 2
+ # number_legs 2
+ # name 'Nancy Drew'
+ # age 34
+ # number_of_bananas_eaten lambda {
+ # BanannaChomper.lookup("nancy.bananas").count
+ # }
+ # end
+ #
+ #
+ # @param [Symbol] namespace of the config
+ # @param [Hash] list of options. e.g. :as => ConstantName
+ def self.define(name, options = {}, &block)
+ config = Config.new
+ @@configs[name.to_sym] = config
+ config.instance_eval &block
- def self.define(name, &block)
- @@configs[name.to_sym] = Config.new
-
- @@configs[name.to_sym].instance_eval &block
+ if options.has_key? :as
+ Object.const_set(options[:as].to_s.to_sym, config)
+ end
end
def self.method_missing(name, *args, &block)
if @@configs.has_key? name.to_sym
@@configs[name.to_sym]