# File lib/addressable/uri.rb, line 794 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