class Addressable::URI

def origin=(new_origin)

Parameters:
  • new_origin (String, #to_str) -- The new origin component.
def origin=(new_origin)
  if new_origin
    if !new_origin.respond_to?(:to_str)
      raise TypeError, "Can't convert #{new_origin.class} into String."
    end
    new_origin = new_origin.to_str
    new_scheme = new_origin[/^([^:\/?#]+):\/\//, 1]
    unless new_scheme
      raise InvalidURIError, 'An origin cannot omit the scheme.'
    end
    new_host = new_origin[/:\/\/([^\/?#:]+)/, 1]
    unless new_host
      raise InvalidURIError, 'An origin cannot omit the host.'
    end
    new_port = new_origin[/:([^:@\[\]\/]*?)$/, 1]
  end
  self.scheme = new_scheme
  self.host = new_host
  self.port = new_port
  self.userinfo = nil
  # Reset dependent values
  @userinfo = nil
  @normalized_userinfo = NONE
  @authority = nil
  @normalized_authority = nil
  remove_composite_values
  # Ensure we haven't created an invalid URI
  validate()
end