Class: HTTP::URI
Constant Summary collapse
- HTTP_SCHEME =
"http"
- HTTPS_SCHEME =
"https"
- NORMALIZER =
lambda do |uri| uri = HTTP::URI.parse uri HTTP::URI.new( :scheme => uri.normalized_scheme, :authority => uri., :path => uri.normalized_path, :query => uri.query, :fragment => uri.normalized_fragment ) end
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
77 78 79 80 81 82 83 84 85 86 |
# File 'lib/http/uri.rb', line 77 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
59 60 61 |
# File 'lib/http/uri.rb', line 59 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
47 48 49 50 51 |
# File 'lib/http/uri.rb', line 47 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
93 94 95 |
# File 'lib/http/uri.rb', line 93 def ==(other) other.is_a?(URI) && normalize.to_s == other.normalize.to_s end |
#dup ⇒ Object
Returns duplicated URI.
133 134 135 |
# File 'lib/http/uri.rb', line 133 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
102 103 104 |
# File 'lib/http/uri.rb', line 102 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
109 110 111 |
# File 'lib/http/uri.rb', line 109 def hash @hash ||= to_s.hash * -1 end |
#http? ⇒ True, False
122 123 124 |
# File 'lib/http/uri.rb', line 122 def http? HTTP_SCHEME == scheme end |
#https? ⇒ True, False
128 129 130 |
# File 'lib/http/uri.rb', line 128 def https? HTTPS_SCHEME == scheme end |
#inspect ⇒ String
Returns human-readable representation of URI.
146 147 148 |
# File 'lib/http/uri.rb', line 146 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
116 117 118 |
# File 'lib/http/uri.rb', line 116 def port @uri.port || @uri.default_port end |
#to_s ⇒ String Also known as: to_str
Convert an HTTP::URI to a String
140 141 142 |
# File 'lib/http/uri.rb', line 140 def to_s @uri.to_s end |