diff options
author | ryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-08-24 05:08:00 +0000 |
---|---|---|
committer | ryan <ryan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-08-24 05:08:00 +0000 |
commit | 030e887feda3f4a0de0050949ad9b9594ba8c3e6 (patch) | |
tree | e8070dcddb1a3f8b53f570b6e3de241a7cdf46c0 /lib/uri/http.rb | |
parent | 08324a409816329a925859d2d00c6ee0bf0242a6 (diff) | |
download | ruby-030e887feda3f4a0de0050949ad9b9594ba8c3e6.tar.gz |
Lovely RDOC patches from mathew (metaATpoboxDOTcom) on URI/* and getoptlong.rb
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/uri/http.rb')
-rw-r--r-- | lib/uri/http.rb | 49 |
1 files changed, 42 insertions, 7 deletions
diff --git a/lib/uri/http.rb b/lib/uri/http.rb index 1f8bf587aa..87eb8893f2 100644 --- a/lib/uri/http.rb +++ b/lib/uri/http.rb @@ -11,7 +11,12 @@ require 'uri/generic' module URI # - # RFC1738 section 3.3. + # The syntax of HTTP URIs is defined in RFC1738 section 3.3. + # + # Note that the Ruby URI library allows HTTP URLs containing usernames and + # passwords. This is not legal as per the RFC, but used to be + # supported in Internet Explorer 5 and 6, before the MS04-004 security + # update. See <URL:http://support.microsoft.com/kb/834489>. # class HTTP < Generic DEFAULT_PORT = 80 @@ -27,9 +32,27 @@ module URI # # == Description # - # Create a new URI::HTTP object from components of URI::HTTP with - # check. It is scheme, userinfo, host, port, path, query and - # fragment. It provided by an Array of a Hash. + # Create a new URI::HTTP object from components, with syntax checking. + # + # The components accepted are userinfo, host, port, path, query and + # fragment. + # + # The components should be provided either as an Array, or as a Hash + # with keys formed by preceding the component names with a colon. + # + # If an Array is used, the components must be passed in the order + # [userinfo, host, port, path, query, fragment]. + # + # Example: + # + # newuri = URI::HTTP.build({:host => 'www.example.com', + # :path> => '/foo/bar'}) + # + # newuri = URI::HTTP.build([nil, "www.example.com", nil, "/path", + # "query", 'fragment']) + # + # Currently, if passed userinfo components this method generates + # invalid HTTP URIs as per RFC 1738. # def self.build(args) tmp = Util::make_components_hash(self, args) @@ -39,8 +62,17 @@ module URI # # == Description # - # Create a new URI::HTTP object from ``generic'' components with no - # check. + # Create a new URI::HTTP object from generic URI components as per + # RFC 2396. No HTTP-specific syntax checking (as per RFC 1738) is + # performed. + # + # Arguments are +scheme+, +userinfo+, +host+, +port+, +registry+, +path+, + # +opaque+, +query+ and +fragment+, in that order. + # + # Example: + # + # uri = URI::HTTP.new(['http', nil, "www.example.com", nil, "/path", + # "query", 'fragment']) # def initialize(*arg) super(*arg) @@ -49,7 +81,10 @@ module URI # # == Description # - # Returns: path + '?' + query + # Returns the full path for an HTTP request, as required by Net::HTTP::Get. + # + # If the URI contains a query, the full path is URI#path + '?' + URI#query. + # Otherwise, the path is simply URI#path. # def request_uri r = path_query |