class Addressable::URI

def scheme=(new_scheme)

Parameters:
  • new_scheme (String, #to_str) -- The new scheme component.
def scheme=(new_scheme)
  if new_scheme && !new_scheme.respond_to?(:to_str)
    raise TypeError, "Can't convert #{new_scheme.class} into String."
  elsif new_scheme
    new_scheme = new_scheme.to_str
  end
  if new_scheme && new_scheme !~ /[a-z][a-z0-9\.\+\-]*/i
    raise InvalidURIError, "Invalid scheme format."
  end
  @scheme = new_scheme
  @scheme = nil if @scheme.to_s.strip.empty?
  # Reset dependant values
  @normalized_scheme = nil
  @uri_string = nil
  @hash = nil
  # Ensure we haven't created an invalid URI
  validate()
end