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]
.
A path from e.g. the File
class should be escaped before being passed.
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" uri3 = URI::File.build({:path => URI::escape('/path/my file.txt')}) uri3.to_s # => "file:///path/my%20file.txt"
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 (without URI
decoding).
Returns the password component (without URI
decoding).
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/"