Creates a new URI::File
object from components, with syntax checking.
The components accepted are host
and path
.
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 [host, path]
.
Examples:
require 'uri' uri1 = URI::File.build(['host.example.com', '/path/file.zip']) uri1.to_s # => "file://host.example.com/path/file.zip" uri2 = URI::File.build({:host => 'host.example.com', :path => '/ruby/src'}) uri2.to_s # => "file://host.example.com/ruby/src"
Components of the URI
in the order.
See ::new
.
At first, tries to create a new URI::Generic
instance using URI::Generic::build
. But, if exception URI::InvalidComponentError
is raised, then it does URI::Escape.escape all URI
components and tries again.
See ::new
.
Creates a new URI::Generic
instance from components of URI::Generic
with check. Components are: scheme, userinfo, host, port, registry, path, opaque, query, and fragment. You can provide arguments either by an Array
or a Hash
. See ::new
for hash keys to use or for order of array items.
scheme
Protocol scheme, i.e. ‘http’,‘ftp’,‘mailto’ and so on.
userinfo
User name and password, i.e. ‘sdmitry:bla’.
host
Server host name.
port
Server port.
registry
Registry of naming authorities.
path
Path on server.
opaque
Opaque part.
query
Query data.
fragment
Part of the URI
after ‘#’ character.
parser
Parser
for internal use [URI::DEFAULT_PARSER by default].
arg_check
Check arguments [false by default].
Creates a new URI::Generic
instance from “generic” components without check.
Returns the parser to be used.
Unless a URI::Parser
is defined, DEFAULT_PARSER is used.
Replaces self by other URI
object.
Components of the URI
in the order.
v
Public setter for the scheme component v
(with validation).
See also URI::Generic.check_scheme
.
require 'uri' uri = URI.parse("http://my.example.com") uri.scheme = "https" uri.to_s #=> "https://my.example.com"
v
Public setter for the user
component (with validation).
See also URI::Generic.check_user
.
require 'uri' uri = URI.parse("http://john:S3nsit1ve@my.example.com") uri.user = "sam" uri.to_s #=> "http://sam:V3ry_S3nsit1ve@my.example.com"
v
Public setter for the password
component (with validation).
See also URI::Generic.check_password
.
require 'uri' uri = URI.parse("http://john:S3nsit1ve@my.example.com") uri.password = "V3ry_S3nsit1ve" uri.to_s #=> "http://john:V3ry_S3nsit1ve@my.example.com"
Returns the user component.
Returns the password component.
v
Public setter for the host component v
(with validation).
See also URI::Generic.check_host
.
require 'uri' uri = URI.parse("http://my.example.com") uri.host = "foo.com" uri.to_s #=> "http://foo.com"
Extract the host part of the URI
and unwrap brackets for IPv6 addresses.
This method is the same as URI::Generic#host
except brackets for IPv6 (and future IP) addresses are removed.
uri = URI("http://[::1]/bar") uri.hostname #=> "::1" uri.host #=> "[::1]"
Sets the host part of the URI
as the argument with brackets for IPv6 addresses.
This method is the same as URI::Generic#host=
except the argument can be a bare IPv6 address.
uri = URI("http://foo/bar") uri.hostname = "::1" uri.to_s #=> "http://[::1]/bar"
If the argument seems to be an IPv6 address, it is wrapped with brackets.
v
Public setter for the port component v
(with validation).
See also URI::Generic.check_port
.
require 'uri' uri = URI.parse("http://my.example.com") uri.port = 8080 uri.to_s #=> "http://my.example.com:8080"
v
Public setter for the path component v
(with validation).
See also URI::Generic.check_path
.
require 'uri' uri = URI.parse("http://my.example.com/pub/files") uri.path = "/faq/" uri.to_s #=> "http://my.example.com/faq/"
v
Public setter for the query component v
.
require 'uri' uri = URI.parse("http://my.example.com/?id=25") uri.query = "id=1" uri.to_s #=> "http://my.example.com/?id=1"
v
Public setter for the opaque component v
(with validation).
See also URI::Generic.check_opaque
.
Checks the fragment v
component against the URI::Parser
Regexp
for :FRAGMENT.
v
Public setter for the fragment component v
(with validation).
require 'uri' uri = URI.parse("http://my.example.com/?id=25#time=1305212049") uri.fragment = "time=1305212086" uri.to_s #=> "http://my.example.com/?id=25#time=1305212086"
Returns true if URI
is hierarchical.
URI
has components listed in order of decreasing significance from left to right, see RFC3986 tools.ietf.org/html/rfc3986 1.2.3.
require 'uri' uri = URI.parse("http://my.example.com/") uri.hierarchical? #=> true uri = URI.parse("mailto:joe@example.com") uri.hierarchical? #=> false