def config
      @config ||= begin
        Hash.new do |hash, key|
          raise ConfigurationError, "Configuration key #{key} in task #{name} doesn't exist"
        end.tap do |hash|
          hash.define_singleton_method(:declare) do |*keys|
            keys.each { |key| self[key] = nil unless self.has_key?(key) }
          end
        end
      end
    end
def config
      @config ||= begin
        Hash.new do |hash, key|
          raise ConfigurationError, "Configuration key #{key} in task #{name} doesn't exist"
        end.tap do |hash|
          hash.define_singleton_method(:declare) do |*keys|
            keys.each { |key| self[key] = nil unless self.has_key?(key) }
          end
        end
      end
    end
don't use this if you don't have to!