Class: HTTP::URI
Constant Summary collapse
- HTTP_SCHEME =
"http"
- HTTPS_SCHEME =
"https"
Class Method Summary collapse
-
.form_encode(form_values, sort = false) ⇒ String
Encodes key/value pairs as application/x-www-form-urlencoded.
-
.parse(uri) ⇒ HTTP::URI
Parse the given URI string, returning an HTTP::URI object.
Instance Method Summary collapse
-
#==(other) ⇒ TrueClass, FalseClass
Are these URI objects equal? Normalizes both URIs prior to comparison.
-
#dup ⇒ Object
Duplicated URI.
-
#eql?(other) ⇒ TrueClass, FalseClass
Are these URI objects equal? Does NOT normalizes both URIs prior to comparison.
-
#hash ⇒ Integer
Hash value based off the normalized form of a URI.
- #http? ⇒ True, False
- #https? ⇒ True, False
-
#initialize(options_or_uri = {}) ⇒ HTTP::URI
constructor
Creates an HTTP::URI instance from the given options.
-
#inspect ⇒ String
Human-readable representation of URI.
-
#port ⇒ Integer
Port number, either as specified or the default if unspecified.
-
#to_s ⇒ String
(also: #to_str)
Convert an HTTP::URI to a String.
Constructor Details
#initialize(options_or_uri = {}) ⇒ HTTP::URI
Creates an HTTP::URI instance from the given options
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/http/uri.rb', line 64 def initialize( = {}) case when Hash @uri = Addressable::URI.new() when Addressable::URI @uri = else raise TypeError, "expected Hash for options, got #{.class}" end end |
Class Method Details
.form_encode(form_values, sort = false) ⇒ String
Encodes key/value pairs as application/x-www-form-urlencoded
46 47 48 |
# File 'lib/http/uri.rb', line 46 def self.form_encode(form_values, sort = false) Addressable::URI.form_encode(form_values, sort) end |
.parse(uri) ⇒ HTTP::URI
Parse the given URI string, returning an HTTP::URI object
34 35 36 37 38 |
# File 'lib/http/uri.rb', line 34 def self.parse(uri) return uri if uri.is_a?(self) new(Addressable::URI.parse(uri)) end |
Instance Method Details
#==(other) ⇒ TrueClass, FalseClass
Are these URI objects equal? Normalizes both URIs prior to comparison
80 81 82 |
# File 'lib/http/uri.rb', line 80 def ==(other) other.is_a?(URI) && normalize.to_s == other.normalize.to_s end |
#dup ⇒ Object
Returns duplicated URI.
120 121 122 |
# File 'lib/http/uri.rb', line 120 def dup self.class.new @uri.dup end |
#eql?(other) ⇒ TrueClass, FalseClass
Are these URI objects equal? Does NOT normalizes both URIs prior to comparison
89 90 91 |
# File 'lib/http/uri.rb', line 89 def eql?(other) other.is_a?(URI) && to_s == other.to_s end |
#hash ⇒ Integer
Hash value based off the normalized form of a URI
96 97 98 |
# File 'lib/http/uri.rb', line 96 def hash @hash ||= to_s.hash * -1 end |
#http? ⇒ True, False
109 110 111 |
# File 'lib/http/uri.rb', line 109 def http? HTTP_SCHEME == scheme end |
#https? ⇒ True, False
115 116 117 |
# File 'lib/http/uri.rb', line 115 def https? HTTPS_SCHEME == scheme end |
#inspect ⇒ String
Returns human-readable representation of URI.
133 134 135 |
# File 'lib/http/uri.rb', line 133 def inspect format("#<%s:0x%014x URI:%s>", self.class.name, object_id << 1, to_s) end |
#port ⇒ Integer
Port number, either as specified or the default if unspecified
103 104 105 |
# File 'lib/http/uri.rb', line 103 def port @uri.port || @uri.default_port end |
#to_s ⇒ String Also known as: to_str
Convert an HTTP::URI to a String
127 128 129 |
# File 'lib/http/uri.rb', line 127 def to_s @uri.to_s end |