Class: Bundler::URI::HTTP
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Generic
|
|
Instance Chain:
|
|
Inherits: |
Bundler::URI::Generic
|
Defined in: | lib/bundler/vendor/uri/lib/uri/http.rb |
Overview
The syntax of HTTP
URIs is defined in RFC1738 section 3.3.
Note that the Ruby ::Bundler::URI
library allows HTTP
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
HTTP
.%i[ scheme userinfo host port path query fragment ].freeze
-
DEFAULT_PORT =
A Default port of 80 for
HTTP
.80
::Bundler::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
-
#authority
Description.
-
#origin
Description.
-
#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 Bundler.ui as |
#set_registry, #check_registry, #route_from_path |
Constructor Details
This class inherits a constructor from Bundler::URI::Generic
Class Method Details
.build(args)
Description
Creates a new HTTP
object from components, with syntax checking.
The components accepted are userinfo, host, port, path, query, and fragment.
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, fragment]
.
Example:
uri = Bundler::URI::HTTP.build(host: 'www.example.com', path: '/foo/bar')
uri = Bundler::URI::HTTP.build([nil, "www.example.com", nil, "/path",
"query", 'fragment'])
Currently, if passed userinfo components this method generates invalid HTTP
URIs as per RFC 1738.
# File 'lib/bundler/vendor/uri/lib/uri/http.rb', line 59
def self.build(args) tmp = Util.make_components_hash(self, args) super(tmp) end
Instance Method Details
#authority
Description
Returns the authority for an HTTP
uri, as defined in datatracker.ietf.org/doc/html/rfc3986/#section-3.2.
Example:
Bundler::URI::HTTP.build(host: 'www.example.com', path: '/foo/bar'). #=> "www.example.com"
Bundler::URI::HTTP.build(host: 'www.example.com', port: 8000, path: '/foo/bar'). #=> "www.example.com:8000"
Bundler::URI::HTTP.build(host: 'www.example.com', port: 80, path: '/foo/bar'). #=> "www.example.com"
# File 'lib/bundler/vendor/uri/lib/uri/http.rb', line 97
def if port == default_port host else "#{host}:#{port}" end end
#origin
Description
Returns the origin for an HTTP
uri, as defined in datatracker.ietf.org/doc/html/rfc6454.
Example:
Bundler::URI::HTTP.build(host: 'www.example.com', path: '/foo/bar').origin #=> "http://www.example.com"
Bundler::URI::HTTP.build(host: 'www.example.com', port: 8000, path: '/foo/bar').origin #=> "http://www.example.com:8000"
Bundler::URI::HTTP.build(host: 'www.example.com', port: 80, path: '/foo/bar').origin #=> "http://www.example.com"
Bundler::URI::HTTPS.build(host: 'www.example.com', path: '/foo/bar').origin #=> "https://www.example.com"
# File 'lib/bundler/vendor/uri/lib/uri/http.rb', line 119
def origin "#{scheme}://#{}" end
#request_uri
Description
Returns the full path for an HTTP
request, as required by Net::HTTP::Get
.
If the ::Bundler::URI
contains a query, the full path is Bundler::URI#path
+ ‘?’ + Bundler::URI#query
. Otherwise, the path is simply Bundler::URI#path
.
Example:
uri = Bundler::URI::HTTP.build(path: '/foo/bar', query: 'test=true')
uri.request_uri # => "/foo/bar?test=true"
# File 'lib/bundler/vendor/uri/lib/uri/http.rb', line 77
def request_uri return unless @path url = @query ? "#@path?#@query" : @path.dup url.start_with?(?/.freeze) ? url : ?/ + url end