# File lib/addressable/uri.rb, line 2354
    def omit(*components)
      invalid_components = components - [
        :scheme, :user, :password, :userinfo, :host, :port, :authority,
        :path, :query, :fragment
      ]
      unless invalid_components.empty?
        raise ArgumentError,
          "Invalid component names: #{invalid_components.inspect}."
      end
      duplicated_uri = self.dup
      duplicated_uri.validation_deferred = true
      components.each do |component|
        duplicated_uri.send((component.to_s + "=").to_sym, nil)
      end
      duplicated_uri.validation_deferred = false
      duplicated_uri
    end