summaryrefslogtreecommitdiff
path: root/lib/uri.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-05-13 20:03:21 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-05-13 20:03:21 +0000
commit10219ff6216c9d6459026e9e89ed788e2d440dc5 (patch)
treeaa2d9ad85082017e6579234fbddc1887b88106b6 /lib/uri.rb
parentcb57042beeac1f6acc424cc1339acfa198d5ac8b (diff)
* lib/uri.rb: Add toplevel documentation. Patch by Vincent Batts.
[Ruby 1.9 - Bug #4690] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/uri.rb')
-rw-r--r--lib/uri.rb90
1 files changed, 86 insertions, 4 deletions
diff --git a/lib/uri.rb b/lib/uri.rb
index 41bb09b467..2e136eb682 100644
--- a/lib/uri.rb
+++ b/lib/uri.rb
@@ -1,15 +1,97 @@
+# URI is a module providing classes to handle Uniform Resource Identifiers
+# (RFC2396[http://tools.ietf.org/html/rfc2396])
#
-# URI support for Ruby
+# == Features
+#
+# * Uniform handling 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:0x00000000b14880
+# URL: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
+# @@schemes['RSYNC'] = RSYNC
+# end
+# #=> URI::RSYNC
+#
+# URI.scheme_list
+# #=> {"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:0x00000000f648c8 URL: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.
+# - RFC822[http://tools.ietf.org/html/rfc822]
+# - RFC1738[http://tools.ietf.org/html/rfc1738]
+# - RFC2255[http://tools.ietf.org/html/rfc2255]
+# - RFC2368[http://tools.ietf.org/html/rfc2368]
+# - RFC2373[http://tools.ietf.org/html/rfc2373]
+# - RFC2396[http://tools.ietf.org/html/rfc2396]
+# - RFC2732[http://tools.ietf.org/html/rfc2732]
+# - RFC3986[http://tools.ietf.org/html/rfc3986]
+#
+# == Class tree
+#
+# - URI::Generic (in uri/generic.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::Escape - (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 <akira@ruby-lang.org>
-# Documentation:: Akira Yamada <akira@ruby-lang.org>, Dmitry V. Sabanin <sdmitry@lrn.ru>
+# Documentation::
+# Akira Yamada <akira@ruby-lang.org>
+# Dmitry V. Sabanin <sdmitry@lrn.ru>
+# Vincent Batts <vbatts@hashbangbash.com>
# License::
# Copyright (c) 2001 akira yamada <akira@ruby-lang.org>
# You can redistribute it and/or modify it under the same term as Ruby.
# Revision:: $Id$
#
-# See URI for documentation
-#
module URI
# :stopdoc: