Addressable is a replacement for the URI implementation that is part of Ruby's standard library. It more closely conforms to the relevant RFCs and adds support for IRIs and URI templates. Example usage: require 'addressable/uri' uri = Addressable::URI.parse("http://example.com/path/to/resource/") uri.scheme #=> "http" uri.host #=> "example.com" uri.path #=> "/path/to/resource/" uri = Addressable::URI.parse("http://www.詹姆斯.com/") uri.normalize #=> #<Addressable::URI:0xc9a4c8 URI:http://www.xn--8ws00zhy3a.com/> Addressable::URI.expand_template("http://example.com/{-list|+|query}/", { "query" => "an example query".split(" ") }) #=> #<Addressable::URI:0xc9d95c URI:http://example.com/an+example+query/> Addressable::URI.parse( "http://example.com/a/b/c/?one=1&two=2#foo" ).extract_mapping( "http://{host}/{-suffix|/|segments}?{-join|&|one,two,bogus}\#{fragment}" ) #=> # { # "host" => "example.com", # "segments" => ["a", "b", "c"], # "one" => "1", # "two" => "2", # "fragment" => "foo" # }
asplake/addressable
Addressable is a replacement for the URI implementation that is part of Ruby's standard library. It more closely conforms to the relevant RFCs and adds support for IRIs and URI templates.
RubyNOASSERTION