Skip to Content Skip to Search

The “file” URI is defined by RFC8089.

Methods
B
C
S

Constants

COMPONENT = [ :scheme, :host, :path ].freeze
 

An Array of the available components for URI::File.

DEFAULT_PORT = nil
 

A Default port of nil for URI::File.

Class Public methods

build(args)

Description

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"
# File ruby/lib/uri/file.rb, line 53
def self.build(args)
  tmp = Util::make_components_hash(self, args)
  super(tmp)
end

Instance Public methods

check_password(user)

# File ruby/lib/uri/file.rb, line 82
def check_password(user)
  raise URI::InvalidURIError, "can not set password for file URI"
end

check_user(user)

# File ruby/lib/uri/file.rb, line 77
def check_user(user)
  raise URI::InvalidURIError, "can not set user for file URI"
end

check_userinfo(user)

# File ruby/lib/uri/file.rb, line 72
def check_userinfo(user)
  raise URI::InvalidURIError, "can not set userinfo for file URI"
end

set_host(v)

Protected setter for the host component v.

See also URI::Generic.host=.

# File ruby/lib/uri/file.rb, line 62
def set_host(v)
  v = "" if v.nil? || v == "localhost"
  @host = v
end

set_password(v)

do nothing

# File ruby/lib/uri/file.rb, line 95
def set_password(v)
end

set_port(v)

do nothing

# File ruby/lib/uri/file.rb, line 68
def set_port(v)
end

set_user(v)

do nothing

# File ruby/lib/uri/file.rb, line 91
def set_user(v)
end

set_userinfo(v)

do nothing

# File ruby/lib/uri/file.rb, line 87
def set_userinfo(v)
end