 
 This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Parsing URLs | ||
|---|---|---|
| Code | Expected | Actual | 
| require 'uri'
URI.parse('https://www.example.com').scheme | "https" | "https" | 
| URI.parse('http://www.example.com/').host | "www.example.com" | "www.example.com" | 
| URI.parse('http://www.example.com:6060/').port | 6060 | 6060 | 
| URI.parse('http://example.com/a/file.html').path | "/a/file.html" | "/a/file.html" | 
| URI.split('http://example.com/a/file.html') | ["http", nil, "example.com", nil, nil, "/a/file.html", nil, nil, nil] | ["http", nil, "example.com", nil, nil, "/a/file.html", nil, nil, nil] | 
| URI::HTTP.component | [:scheme, :userinfo, :host, :port, :path, :query, :fragment] | [:scheme, :userinfo, :host, :port, :path, :query, :fragment] | 
| URI::MailTo.component | [:scheme, :to, :headers] | [:scheme, :to, :headers] | 
| URI::HTTP.build(:host => 'example.com', :path => '/a/file.html',
                :fragment => 'section_3').to_s | "http://example.com/a/file.html#section_3" | "http://example.com/a/file.html#section_3" | 
| class URI::Generic
  def dump
    component.each do |m|
      puts "#{m}: #{send(m).inspect}"
    end
  end
end
url = 'http://leonardr:pw@www.subdomain.example.com:6060' +
	'/cgi-bin/mycgi.cgi?key1=val1#anchor'
URI.parse(url).dump | scheme: "http" userinfo: "leonardr:pw" host: "www.subdomain.example.com" port: 6060 path: "/cgi-bin/mycgi.cgi" query: "key1=val1" fragment: "anchor" | scheme: "http" userinfo: "leonardr:pw" host: "www.subdomain.example.com" port: 6060 path: "/cgi-bin/mycgi.cgi" query: "key1=val1" fragment: "anchor" | 
| URI::parse('ftp://leonardr:password@ftp.example.com/a/file.txt').dump | scheme: "ftp" userinfo: "leonardr:password" host: "ftp.example.com" port: 21 path: "/a/file.txt" typecode: nil | scheme: "ftp" userinfo: "leonardr:password" host: "ftp.example.com" port: 21 path: "/a/file.txt" typecode: nil | 
| uri = URI::parse('mailto:leonardr@example.com?Subject=Hello&body=Hi!')
uri.dump | scheme: "mailto" to: "leonardr@example.com" headers: [["Subject", "Hello"], ["body", "Hi!"]] | scheme: "mailto" to: "leonardr@example.com" headers: [["Subject", "Hello"], ["body", "Hi!"]] | 
| puts uri.to_mailtext | To: leonardr@example.com Subject: Hello Hi! | To: leonardr@example.com Subject: Hello Hi! | 
| URI::parse("ldap://ldap.example.com").dump | scheme: "ldap" host: "ldap.example.com" port: 389 dn: nil attributes: nil scope: nil filter: nil extensions: nil | scheme: "ldap" host: "ldap.example.com" port: 389 dn: nil attributes: nil scope: nil filter: nil extensions: nil | 
| URI::parse('ldap://ldap.example.com/o=Alice%20Exeter,c=US?extension').dump | scheme: "ldap" host: "ldap.example.com" port: 389 dn: "o=Alice%20Exeter,c=US" attributes: "extension" scope: nil filter: nil extensions: nil | scheme: "ldap" host: "ldap.example.com" port: 389 dn: "o=Alice%20Exeter,c=US" attributes: "extension" scope: nil filter: nil extensions: nil | 
| uri = URI.parse('tag:example.com,2006,my-tag')
uri.scheme | "tag" | "tag" | 
| uri.opaque | "example.com,2006,my-tag" | "example.com,2006,my-tag" | 
| uri = URI.parse('http://www.example.com/#anchor')
uri.port = 8080
uri.to_s | "http://www.example.com:8080/#anchor" | "http://www.example.com:8080/#anchor" |