Class: Rage::Request
- Inherits:
-
Object
- Object
- Rage::Request
- Defined in:
- lib/rage/request.rb
Instance Method Summary collapse
-
#delete? ⇒ Boolean
Check the HTTP request method to see if it was of type
DELETE. -
#domain(tld_length = 1) ⇒ Object
Get the domain part of the request.
-
#env ⇒ Hash
Get the Rack environment hash.
-
#format ⇒ String?
Get the content type of the request.
-
#fresh?(etag:, last_modified:) ⇒ Boolean
Check if the request is fresh.
-
#fullpath ⇒ String
Get the request path including the query string.
-
#get? ⇒ Boolean
Check the HTTP request method to see if it was of type
GET. -
#head? ⇒ Boolean
Check the HTTP request method to see if it was of type
HEAD. -
#headers ⇒ Object
Get the request headers.
-
#host ⇒ String
Get the hostname from the request.
-
#method ⇒ String
Get the HTTP method of the request.
-
#patch? ⇒ Boolean
Check the HTTP request method to see if it was of type
PATCH. -
#path ⇒ String
Get the request path.
-
#port ⇒ Integer
Get the port number from the request.
-
#post? ⇒ Boolean
Check the HTTP request method to see if it was of type
POST. -
#protocol ⇒ String
Returns
https://if this was an HTTPS request andhttp://otherwise. -
#put? ⇒ Boolean
Check the HTTP request method to see if it was of type
PUT. -
#query_string ⇒ String
Get the query string from the request.
-
#request_id ⇒ String
(also: #uuid)
Get the unique request ID.
-
#route_uri_pattern ⇒ String
Get the route URI pattern matched for this request.
-
#ssl? ⇒ Boolean
Check if the request was made using TLS/SSL which is if http or https protocol is used inside the URL.
-
#url ⇒ String
Get the full request URL.
-
#user_agent ⇒ String?
Get the
User-Agentheader value.
Instance Method Details
#delete? ⇒ Boolean
Check the HTTP request method to see if it was of type DELETE.
109 110 111 |
# File 'lib/rage/request.rb', line 109 def delete? rack_request.delete? end |
#domain(tld_length = 1) ⇒ Object
Get the domain part of the request.
192 193 194 |
# File 'lib/rage/request.rb', line 192 def domain(tld_length = 1) extract_domain(host, tld_length) end |
#env ⇒ Hash
Get the Rack environment hash.
79 80 81 |
# File 'lib/rage/request.rb', line 79 def env @env end |
#format ⇒ String?
Get the content type of the request.
151 152 153 |
# File 'lib/rage/request.rb', line 151 def format rack_request.content_type end |
#fresh?(etag:, last_modified:) ⇒ Boolean
Check if the request is fresh.
171 172 173 174 175 176 177 178 179 180 181 182 183 184 |
# File 'lib/rage/request.rb', line 171 def fresh?(etag:, last_modified:) request_if_none_match = if_none_match request_not_modified_since = if_not_modified_since # Always render response when no freshness information # is provided in the request. return false unless request_if_none_match || request_not_modified_since if request_if_none_match etag_matches?(requested_etags: request_if_none_match, response_etag: etag) else not_modified?(request_not_modified_since: request_not_modified_since, response_last_modified: last_modified) end end |
#fullpath ⇒ String
Get the request path including the query string.
137 138 139 |
# File 'lib/rage/request.rb', line 137 def fullpath rack_request.fullpath end |
#get? ⇒ Boolean
Check the HTTP request method to see if it was of type GET.
85 86 87 |
# File 'lib/rage/request.rb', line 85 def get? rack_request.get? end |
#head? ⇒ Boolean
Check the HTTP request method to see if it was of type HEAD.
115 116 117 |
# File 'lib/rage/request.rb', line 115 def head? rack_request.head? end |
#headers ⇒ Object
Get the request headers.
159 160 161 |
# File 'lib/rage/request.rb', line 159 def headers @headers ||= Headers.new(@env) end |
#host ⇒ String
Get the hostname from the request.
61 62 63 |
# File 'lib/rage/request.rb', line 61 def host rack_request.host end |
#method ⇒ String
Get the HTTP method of the request. If the client is using the Rack::MethodOverride
middleware, then the X-HTTP-Method-Override header is checked first.
199 200 201 |
# File 'lib/rage/request.rb', line 199 def method check_method(@env["rack.methodoverride.original_method"] || @env["REQUEST_METHOD"]) end |
#patch? ⇒ Boolean
Check the HTTP request method to see if it was of type PATCH.
97 98 99 |
# File 'lib/rage/request.rb', line 97 def patch? rack_request.patch? end |
#path ⇒ String
Get the request path.
129 130 131 |
# File 'lib/rage/request.rb', line 129 def path rack_request.path end |
#port ⇒ Integer
Get the port number from the request.
67 68 69 |
# File 'lib/rage/request.rb', line 67 def port rack_request.port end |
#post? ⇒ Boolean
Check the HTTP request method to see if it was of type POST.
91 92 93 |
# File 'lib/rage/request.rb', line 91 def post? rack_request.post? end |
#protocol ⇒ String
Returns https:// if this was an HTTPS request and http:// otherwise.
55 56 57 |
# File 'lib/rage/request.rb', line 55 def protocol ssl? ? "https://" : "http://" end |
#put? ⇒ Boolean
Check the HTTP request method to see if it was of type PUT.
103 104 105 |
# File 'lib/rage/request.rb', line 103 def put? rack_request.put? end |
#query_string ⇒ String
Get the query string from the request.
73 74 75 |
# File 'lib/rage/request.rb', line 73 def query_string rack_request.query_string end |
#request_id ⇒ String Also known as: uuid
Get the unique request ID. By default, this ID is internally generated, and all log entries created during the request
are tagged with it. Alternatively, you can use the Rage::RequestId middleware to derive the ID from the X-Request-Id header.
206 207 208 |
# File 'lib/rage/request.rb', line 206 def request_id @env["rage.request_id"] end |
#route_uri_pattern ⇒ String
Get the route URI pattern matched for this request.
218 219 220 221 222 223 224 |
# File 'lib/rage/request.rb', line 218 def route_uri_pattern if @controller Rage::Router::Util.route_uri_pattern(@controller.class, @controller.action_name) else path end end |
#ssl? ⇒ Boolean
Check if the request was made using TLS/SSL which is if http or https protocol is used inside the URL.
49 50 51 |
# File 'lib/rage/request.rb', line 49 def ssl? rack_request.ssl? end |
#url ⇒ String
Get the full request URL.
121 122 123 |
# File 'lib/rage/request.rb', line 121 def url rack_request.url end |
#user_agent ⇒ String?
Get the User-Agent header value.
145 146 147 |
# File 'lib/rage/request.rb', line 145 def user_agent rack_request.user_agent end |