class WebMock::Util::URI

def self.variations_of_uri_as_strings(uri_object, only_with_scheme: false)

def self.variations_of_uri_as_strings(uri_object, only_with_scheme: false)
  normalized_uri = normalize_uri(uri_object.dup).freeze
  uris = [ normalized_uri ]
  if normalized_uri.path == '/'
    uris = uris_with_trailing_slash_and_without(uris)
  end
  if normalized_uri.port == Addressable::URI.port_mapping[normalized_uri.scheme]
    uris = uris_with_inferred_port_and_without(uris)
  end
  uris = uris_encoded_and_unencoded(uris)
  if normalized_uri.scheme == "http" && !only_with_scheme
    uris = uris_with_scheme_and_without(uris)
  end
  uris.map {|uri| uri.to_s.gsub(/^\/\//,'') }.uniq
end