Class: URI::WS
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Generic
|
|
Instance Chain:
|
|
Inherits: |
URI::Generic
|
Defined in: | lib/uri/ws.rb |
Overview
The syntax of WS
URIs is defined in RFC6455 section 3.
Note that the Ruby URI library allows WS
URLs containing usernames and passwords. This is not legal as per the RFC, but used to be supported in Internet Explorer 5 and 6, before the MS04-004 security update. See <URL:support.microsoft.com/kb/834489>.
Constant Summary
-
COMPONENT =
An Array of the available components for
WS
.%i[ scheme userinfo host port path query ].freeze
-
DEFAULT_PORT =
A Default port of 80 for
WS
.80
::URI
- Included
DEFAULT_PARSER, INITIAL_SCHEMES, Parser, REGEXP, RFC3986_PARSER, TBLDECWWWCOMP_, TBLENCURICOMP_, TBLENCWWWCOMP_, VERSION, VERSION_CODE, WEB_ENCODINGS_
Generic
- Inherited
Class Method Summary
-
.build(args)
Description.
Generic
- Inherited
.build | Synopsis. |
.build2 | Synopsis. |
.component | Components of the |
.default_port | Returns default port. |
.new | Args. |
.use_proxy?, .use_registry |
Instance Attribute Summary
Generic
- Inherited
#absolute | Alias for Generic#absolute?. |
#fragment | Returns the fragment component of the |
#fragment= | Checks the fragment |
#hierarchical? | Returns true if |
#host | Returns the host component of the |
#host= | Args. |
#hostname | Extract the host part of the |
#hostname= | Sets the host part of the |
#opaque | Returns the opaque part of the |
#opaque= | Args. |
#password | Returns the password component (without |
#password= | Args. |
#path | Returns the path component of the |
#path= | Args. |
#port | Returns the port component of the |
#port= | Args. |
#query | Returns the query component of the |
#query= | Args. |
#registry=, | |
#relative? | Returns true if |
#scheme | Returns the scheme component of the |
#scheme= | Args. |
#user | Returns the user component (without |
#user= | Args. |
#userinfo | Returns the userinfo, either as ‘user’ or ‘user:password’. |
#userinfo= | Sets userinfo, argument is string like ‘name:pass’. |
#registry |
Instance Method Summary
-
#request_uri
Description.
Generic
- Inherited
#+ | Alias for Generic#merge. |
#- | Alias for Generic#route_from. |
#== | Compares two URIs. |
#absolute? | Returns true if |
#coerce | Args. |
#component | Components of the |
#decoded_password | Returns the password component after |
#decoded_user | Returns the user component after |
#default_port | Returns default port. |
#eql?, | |
#find_proxy | Returns a proxy |
#hash, #inspect, | |
#merge | Args. |
#merge! | Args. |
#normalize | Returns normalized |
#normalize! | Destructive version of |
#parser | Returns the parser to be used. |
#route_from | Args. |
#route_to | Args. |
#select | Args. |
#to_s | Constructs String from |
#component_ary | Returns an Array of the components defined from the COMPONENT Array. |
#set_host | Protected setter for the host component |
#set_opaque | Protected setter for the opaque component |
#set_password | Protected setter for the password component |
#set_path | Protected setter for the path component |
#set_port | Protected setter for the port component |
#set_scheme | Protected setter for the scheme component |
#set_user | Protected setter for the user component |
#set_userinfo | Protected setter for the |
#check_host | Checks the host |
#check_opaque | Checks the opaque |
#check_password | Checks the password |
#check_path | Checks the path |
#check_port | Checks the port |
#check_scheme | Checks the scheme |
#check_user | Checks the user |
#check_userinfo | Checks the |
#escape_userpass | Escapes ‘user:password’ |
#merge_path | Merges a base path |
#replace! | Replaces self by other |
#route_from0, | |
#split_path | Returns an Array of the path split on ‘/’. |
#split_userinfo | Returns the userinfo |
#set_registry, #check_registry, #route_from_path |
Constructor Details
This class inherits a constructor from URI::Generic
Class Method Details
.build(args)
Description
Creates a new WS
object from components, with syntax checking.
The components accepted are userinfo, host, port, path, and query.
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 [userinfo, host, port, path, query]
.
Example:
uri = URI::WS.build(host: 'www.example.com', path: '/foo/bar')
uri = URI::WS.build([nil, "www.example.com", nil, "/path", "query"])
Currently, if passed userinfo components this method generates invalid WS
URIs as per RFC 1738.
# File 'lib/uri/ws.rb', line 56
def self.build(args) tmp = Util.make_components_hash(self, args) super(tmp) end
Instance Method Details
#request_uri
Description
Returns the full path for a WS
URI, as required by Net::HTTP::Get
.
If the ::URI
contains a query, the full path is URI#path
+ ‘?’ + URI#query
. Otherwise, the path is simply URI#path
.
Example:
uri = URI::WS.build(path: '/foo/bar', query: 'test=true')
uri.request_uri # => "/foo/bar?test=true"
# File 'lib/uri/ws.rb', line 74
def request_uri return unless @path url = @query ? "#@path?#@query" : @path.dup url.start_with?(?/.freeze) ? url : ?/ + url end