module

URI

v2_1_10 - Show latest stable

URI is a module providing classes to handle Uniform Resource Identifiers (RFC2396)

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.

Class tree

Copyright Info

Author

Akira Yamada <[email protected]>

Documentation

Akira Yamada <[email protected]> Dmitry V. Sabanin <[email protected]> Vincent Batts <[email protected]>

License

Copyright © 2001 akira yamada <[email protected]> You can redistribute it and/or modify it under the same term as Ruby.

Revision

$Id$

Included modules

  • URI::REGEXP

Constants

DEFAULT_PARSER = Parser.new

HTML5ASCIIINCOMPAT = [Encoding::UTF_7, Encoding::UTF_16BE, Encoding::UTF_16LE,\nEncoding::UTF_32BE, Encoding::UTF_32LE]

TBLDECWWWCOMP_ = {}

TBLENCWWWCOMP_ = {}

WEB_ENCODINGS_ = {\n"unicode-1-1-utf-8"=>"utf-8",\n"utf-8"=>"utf-8",\n"utf8"=>"utf-8",\n"866"=>"ibm866",\n"cp866"=>"ibm866",\n"csibm866"=>"ibm866",\n"ibm866"=>"ibm866",\n"csisolatin2"=>"iso-8859-2",\n"iso-8859-2"=>"iso-8859-2",\n"iso-ir-101"=>"iso-8859-2",\n"iso8859-2"=>"iso-8859-2",\n"iso88592"=>"iso-8859-2",\n"iso_8859-2"=>"iso-8859-2",\n"iso_8859-2:1987"=>"iso-8859-2",\n"l2"=>"iso-8859-2",\n"latin2"=>"iso-8859-2",\n"csisolatin3"=>"iso-8859-3",\n"iso-8859-3"=>"iso-8859-3",\n"iso-ir-109"=>"iso-8859-3",\n"iso8859-3"=>"iso-8859-3",\n"iso88593"=>"iso-8859-3",\n"iso_8859-3"=>"iso-8859-3",\n"iso_8859-3:1988"=>"iso-8859-3",\n"l3"=>"iso-8859-3",\n"latin3"=>"iso-8859-3",\n"csisolatin4"=>"iso-8859-4",\n"iso-8859-4"=>"iso-8859-4",\n"iso-ir-110"=>"iso-8859-4",\n"iso8859-4"=>"iso-8859-4",\n"iso88594"=>"iso-8859-4",\n"iso_8859-4"=>"iso-8859-4",\n"iso_8859-4:1988"=>"iso-8859-4",\n"l4"=>"iso-8859-4",\n"latin4"=>"iso-8859-4",\n"csisolatincyrillic"=>"iso-8859-5",\n"cyrillic"=>"iso-8859-5",\n"iso-8859-5"=>"iso-8859-5",\n"iso-ir-144"=>"iso-8859-5",\n"iso8859-5"=>"iso-8859-5",\n"iso88595"=>"iso-8859-5",\n"iso_8859-5"=>"iso-8859-5",\n"iso_8859-5:1988"=>"iso-8859-5",\n"arabic"=>"iso-8859-6",\n"asmo-708"=>"iso-8859-6",\n"csiso88596e"=>"iso-8859-6",\n"csiso88596i"=>"iso-8859-6",\n"csisolatinarabic"=>"iso-8859-6",\n"ecma-114"=>"iso-8859-6",\n"iso-8859-6"=>"iso-8859-6",\n"iso-8859-6-e"=>"iso-8859-6",\n"iso-8859-6-i"=>"iso-8859-6",\n"iso-ir-127"=>"iso-8859-6",\n"iso8859-6"=>"iso-8859-6",\n"iso88596"=>"iso-8859-6",\n"iso_8859-6"=>"iso-8859-6",\n"iso_8859-6:1987"=>"iso-8859-6",\n"csisolatingreek"=>"iso-8859-7",\n"ecma-118"=>"iso-8859-7",\n"elot_928"=>"iso-8859-7",\n"greek"=>"iso-8859-7",\n"greek8"=>"iso-8859-7",\n"iso-8859-7"=>"iso-8859-7",\n"iso-ir-126"=>"iso-8859-7",\n"iso8859-7"=>"iso-8859-7",\n"iso88597"=>"iso-8859-7",\n"iso_8859-7"=>"iso-8859-7",\n"iso_8859-7:1987"=>"iso-8859-7",\n"sun_eu_greek"=>"iso-8859-7",\n"csiso88598e"=>"iso-8859-8",\n"csisolatinhebrew"=>"iso-8859-8",\n"hebrew"=>"iso-8859-8",\n"iso-8859-8"=>"iso-8859-8",\n"iso-8859-8-e"=>"iso-8859-8",\n"iso-ir-138"=>"iso-8859-8",\n"iso8859-8"=>"iso-8859-8",\n"iso88598"=>"iso-8859-8",\n"iso_8859-8"=>"iso-8859-8",\n"iso_8859-8:1988"=>"iso-8859-8",\n"visual"=>"iso-8859-8",\n"csisolatin6"=>"iso-8859-10",\n"iso-8859-10"=>"iso-8859-10",\n"iso-ir-157"=>"iso-8859-10",\n"iso8859-10"=>"iso-8859-10",\n"iso885910"=>"iso-8859-10",\n"l6"=>"iso-8859-10",\n"latin6"=>"iso-8859-10",\n"iso-8859-13"=>"iso-8859-13",\n"iso8859-13"=>"iso-8859-13",\n"iso885913"=>"iso-8859-13",\n"iso-8859-14"=>"iso-8859-14",\n"iso8859-14"=>"iso-8859-14",\n"iso885914"=>"iso-8859-14",\n"csisolatin9"=>"iso-8859-15",\n"iso-8859-15"=>"iso-8859-15",\n"iso8859-15"=>"iso-8859-15",\n"iso885915"=>"iso-8859-15",\n"iso_8859-15"=>"iso-8859-15",\n"l9"=>"iso-8859-15",\n"iso-8859-16"=>"iso-8859-16",\n"cskoi8r"=>"koi8-r",\n"koi"=>"koi8-r",\n"koi8"=>"koi8-r",\n"koi8-r"=>"koi8-r",\n"koi8_r"=>"koi8-r",\n"koi8-u"=>"koi8-u",\n"dos-874"=>"windows-874",\n"iso-8859-11"=>"windows-874",\n"iso8859-11"=>"windows-874",\n"iso885911"=>"windows-874",\n"tis-620"=>"windows-874",\n"windows-874"=>"windows-874",\n"cp1250"=>"windows-1250",\n"windows-1250"=>"windows-1250",\n"x-cp1250"=>"windows-1250",\n"cp1251"=>"windows-1251",\n"windows-1251"=>"windows-1251",\n"x-cp1251"=>"windows-1251",\n"ansi_x3.4-1968"=>"windows-1252",\n"ascii"=>"windows-1252",\n"cp1252"=>"windows-1252",\n"cp819"=>"windows-1252",\n"csisolatin1"=>"windows-1252",\n"ibm819"=>"windows-1252",\n"iso-8859-1"=>"windows-1252",\n"iso-ir-100"=>"windows-1252",\n"iso8859-1"=>"windows-1252",\n"iso88591"=>"windows-1252",\n"iso_8859-1"=>"windows-1252",\n"iso_8859-1:1987"=>"windows-1252",\n"l1"=>"windows-1252",\n"latin1"=>"windows-1252",\n"us-ascii"=>"windows-1252",\n"windows-1252"=>"windows-1252",\n"x-cp1252"=>"windows-1252",\n"cp1253"=>"windows-1253",\n"windows-1253"=>"windows-1253",\n"x-cp1253"=>"windows-1253",\n"cp1254"=>"windows-1254",\n"csisolatin5"=>"windows-1254",\n"iso-8859-9"=>"windows-1254",\n"iso-ir-148"=>"windows-1254",\n"iso8859-9"=>"windows-1254",\n"iso88599"=>"windows-1254",\n"iso_8859-9"=>"windows-1254",\n"iso_8859-9:1989"=>"windows-1254",\n"l5"=>"windows-1254",\n"latin5"=>"windows-1254",\n"windows-1254"=>"windows-1254",\n"x-cp1254"=>"windows-1254",\n"cp1255"=>"windows-1255",\n"windows-1255"=>"windows-1255",\n"x-cp1255"=>"windows-1255",\n"cp1256"=>"windows-1256",\n"windows-1256"=>"windows-1256",\n"x-cp1256"=>"windows-1256",\n"cp1257"=>"windows-1257",\n"windows-1257"=>"windows-1257",\n"x-cp1257"=>"windows-1257",\n"cp1258"=>"windows-1258",\n"windows-1258"=>"windows-1258",\n"x-cp1258"=>"windows-1258",\n"x-mac-cyrillic"=>"macCyrillic",\n"x-mac-ukrainian"=>"macCyrillic",\n"chinese"=>"gbk",\n"csgb2312"=>"gbk",\n"csiso58gb231280"=>"gbk",\n"gb2312"=>"gbk",\n"gb_2312"=>"gbk",\n"gb_2312-80"=>"gbk",\n"gbk"=>"gbk",\n"iso-ir-58"=>"gbk",\n"x-gbk"=>"gbk",\n"gb18030"=>"gb18030",\n"big5"=>"big5",\n"big5-hkscs"=>"big5",\n"cn-big5"=>"big5",\n"csbig5"=>"big5",\n"x-x-big5"=>"big5",\n"cseucpkdfmtjapanese"=>"cp51932",\n"euc-jp"=>"cp51932",\n"x-euc-jp"=>"cp51932",\n"csiso2022jp"=>"cp50221",\n"iso-2022-jp"=>"cp50221",\n"csshiftjis"=>"Windows-31J",\n"ms_kanji"=>"Windows-31J",\n"shift-jis"=>"Windows-31J",\n"sh

Files

  • lib/open-uri.rb
  • lib/uri.rb
  • lib/uri/common.rb
  • lib/uri/ftp.rb
  • lib/uri/generic.rb
  • lib/uri/http.rb
  • lib/uri/https.rb
  • lib/uri/ldap.rb
  • lib/uri/ldaps.rb
  • lib/uri/mailto.rb

Nested classes and modules