# File lib/configuration.rb, line 133 def self.evaluate configuration, options = {}, &block dsl = new configuration Pure[dsl].instance_eval(&block) if block options.each{|key, value| Pure[dsl].send key, value} Pure[dsl].instance_eval{ @__configuration } end
# File lib/configuration.rb, line 129 def Method m @__configuration.method(m) end
# File lib/configuration.rb, line 125 def Send(m, *a, &b) Method(m).call(*a, &b) end
# File lib/configuration.rb, line 148 def __configuration__ @__configuration end
# File lib/configuration.rb, line 153 def method_missing(m, *a, &b) if(a.empty? and b.nil?) return Pure[@__configuration].send(m, *a, &b) end if b raise ArgumentError unless a.empty? parent = @__configuration name = m.to_s configuration = if @__configuration.respond_to?(name) and Configuration === @__configuration.send(name) @__configuration.send name else Configuration.new name end Pure[configuration].instance_eval{ @__parent = parent } DSL.evaluate configuration, &b value = configuration end unless a.empty? value = a.size == 1 ? a.first : a end @__singleton_class.module_eval do define_method(m){ value } end end
Generated with the Darkfish Rdoc Generator 2.