def normalized_path
@normalized_path ||= (begin
if self.scheme == nil && self.path != nil && self.path != "" &&
self.path =~ /^(?!\/)[^\/:]*:.*$/
self.path.sub!(":", "%2F")
end
result = (self.path.strip.split("/", -1).map do |segment|
Addressable::URI.normalize_component(
segment,
Addressable::URI::CharacterClasses::PCHAR
)
end).join("/")
result = self.class.normalize_path(result)
if result == "" &&
["http", "https", "ftp", "tftp"].include?(self.normalized_scheme)
result = "/"
end
result
end)
end