Addressable
Installation:
sudo apt-get install libidn11-dev sudo gem install idn addressable
Usage:
require 'addressable/uri'
# URI Templates
uri = Addressable::URI.expand_template("http://example.com/?q={query}", {
"query" => "an example query"
})
puts uri
http://example.com/?q=an%20example%20query
# heuristic_parse / normalize
uri = Addressable::URI.heuristic_parse('http:///example.com/"')
puts uri.normalize
http://example.com/%22
# extract_mapping
uri = Addressable::URI.parse('http://intertwingly.net/blog/2007/12/21/foo')
p uri.extract_mapping('http://{host}/blog/{date}/{slug}')
{"slug"=>"foo", "date"=>"2007/12/21", "host"=>"intertwingly.net"}
# IRI
uri = Addressable::URI.parse("http://www.詹姆斯.com/")
puts uri.normalize
http://www.xn--8ws00zhy3a.com/