Class: Gem::URI::WS
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
|
Subclasses:
|
|
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Generic
|
|
|
Instance Chain:
self,
Generic,
::Gem::URI
|
|
| Inherits: |
Gem::URI::Generic
|
| Defined in: | lib/rubygems/vendor/uri/lib/uri/ws.rb |
Overview
The syntax of WS URIs is defined in RFC6455 section 3.
Note that the Ruby ::Gem::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 =
# File 'lib/rubygems/vendor/uri/lib/uri/ws.rb', line 27
An Array of the available components for
WS.%i[ scheme userinfo host port path query ].freeze
-
DEFAULT_PORT =
# File 'lib/rubygems/vendor/uri/lib/uri/ws.rb', line 24
A Default port of 80 for
WS.80
::Gem::URI - Included
DEFAULT_PARSER, INITIAL_SCHEMES, RFC2396_PARSER, 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. |
| #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, #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 |
| #authority | Returns the authority info (array of user, password, host and port), if any is set. |
| #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? | Compares with oth for Hash. |
| #find_proxy | Returns a proxy |
| #hash | Returns the hash value. |
| #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 |
| #to_str | Alias for Generic#to_s. |
| #component_ary | Returns an Array of the components defined from the COMPONENT Array. |
| #set_authority | Protected setter for the authority info ( |
| #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 Gem.ui as |
| #inspect, #set_registry, #check_registry, #route_from_path | |
Constructor Details
This class inherits a constructor from Gem::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 = Gem::URI::WS.build(host: 'www.example.com', path: '/foo/bar')
uri = Gem::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/rubygems/vendor/uri/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 ::Gem::URI, as required by ::Gem::Net::HTTP::Get.
If the ::Gem::URI contains a query, the full path is Gem::URI#path + ‘?’ + Gem::URI#query. Otherwise, the path is simply Gem::URI#path.
Example:
uri = Gem::URI::WS.build(path: '/foo/bar', query: 'test=true')
uri.request_uri # => "/foo/bar?test=true"
# File 'lib/rubygems/vendor/uri/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