# File lib/loquacious.rb, line 116 def copy( config, &block ) config = Configuration.for(config) unless config.instance_of? Configuration return unless config rv = Configuration.new rv.merge!(config) # deep copy rv.__desc.each do |key,desc| value = rv.__send(key) next unless value.instance_of? Configuration rv.__send("#{key}=", ::Loquacious.copy(value)) end rv.merge!(Configuration::DSL.evaluate(&block)) if block rv end