def authority=(new_authority)
if new_authority
new_authority = new_authority.to_str
new_userinfo = new_authority[/^([^\[\]]*)@/, 1]
if new_userinfo
new_user = new_userinfo.strip[/^([^:]*):?/, 1]
new_password = new_userinfo.strip[/:(.*)$/, 1]
end
new_host =
new_authority.gsub(/^([^\[\]]*)@/, "").gsub(/:([^:@\[\]]*?)$/, "")
new_port =
new_authority[/:([^:@\[\]]*?)$/, 1]
end
self.password = new_password
self.user = new_user
self.host = new_host
self.port = new_port
@inferred_port = nil
@userinfo = nil
@normalized_userinfo = nil
validate()
end