frozen_string_literal: false URI is a module providing classes to handle Uniform Resource Identifiers (RFC2396).
Features
- Uniform way of handling URIs.
- Flexibility to introduce custom URI schemes.
- Flexibility to have an alternate URI::Parser (or just different patterns and regexp's).
Basic example
require 'uri'
uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
#=> #<URI::HTTP http://foo.com/posts?id=30&limit=5#time=1305298413>
uri.scheme #=> "http"
uri.host #=> "foo.com"
uri.path #=> "/posts"
uri.query #=> "id=30&limit=5"
uri.fragment #=> "time=1305298413"
uri.to_s #=> "http://foo.com/posts?id=30&limit=5#time=1305298413"
Adding custom URIs
module URI
class RSYNC < Generic
DEFAULT_PORT = 873
end
register_scheme 'RSYNC', RSYNC
end
#=> URI::RSYNC
URI.scheme_list
#=> {"FILE"=>URI::File, "FTP"=>URI::FTP, "HTTP"=>URI::HTTP,
# "HTTPS"=>URI::HTTPS, "LDAP"=>URI::LDAP, "LDAPS"=>URI::LDAPS,
# "MAILTO"=>URI::MailTo, "RSYNC"=>URI::RSYNC}
uri = URI("rsync://rsync.foo.com")
#=> #<URI::RSYNC rsync://rsync.foo.com>
RFC References
A good place to view an RFC spec is http://www.ietf.org/rfc.html.
Here is a list of all related RFC's:
Class tree
- URI::Generic (in uri/generic.rb)
- URI::File - (in uri/file.rb)
- URI::FTP - (in uri/ftp.rb)
- URI::HTTP - (in uri/http.rb)
- URI::HTTPS - (in uri/https.rb)
- URI::LDAP - (in uri/ldap.rb)
- URI::LDAPS - (in uri/ldaps.rb)
- URI::MailTo - (in uri/mailto.rb)
- URI::Parser - (in uri/common.rb)
- URI::REGEXP - (in uri/common.rb)
- URI::REGEXP::PATTERN - (in uri/common.rb)
- URI::Util - (in uri/common.rb)
- URI::Error - (in uri/common.rb)
- URI::InvalidURIError - (in uri/common.rb)
- URI::InvalidComponentError - (in uri/common.rb)
- URI::BadURIError - (in uri/common.rb)
Copyright Info
- Author
Akira Yamada [email protected]
- Documentation
Akira Yamada [email protected] Dmitry V. Sabanin [email protected] Vincent Batts [email protected]
- License
Copyright (c) 2001 akira yamada [email protected] You can redistribute it and/or modify it under the same term as Ruby.