def defer_validation(&block)
      raise LocalJumpError, "No block given." unless block
      @validation_deferred = true
      block.call()
      @validation_deferred = false
      validate
      return nil
    end
def defer_validation(&block)
      raise LocalJumpError, "No block given." unless block
      @validation_deferred = true
      block.call()
      @validation_deferred = false
      validate
      return nil
    end
This method allows you to make several changes to a URI simultaneously,
 which separately would cause validation errors, but in conjunction,
 are valid.  The URI will be revalidated as soon as the entire block has
 been executed.

 @param [Proc] block
   A set of operations to perform on a given URI.