Module: Rack::Response::Helpers
- Included in:
- Rack::Response, Raw
- Defined in:
- lib/rack/response.rb
Instance Method Summary collapse
- #accepted? ⇒ Boolean
-
#add_header(key, value) ⇒ Object
Add a header that may have multiple values.
- #bad_request? ⇒ Boolean
-
#cache!(duration = 3600, directive: "public") ⇒ Object
Specify that the content should be cached.
- #cache_control ⇒ Object
- #cache_control=(value) ⇒ Object
- #client_error? ⇒ Boolean
- #content_length ⇒ Object
-
#content_type ⇒ Object
Get the content type of the response.
-
#content_type=(content_type) ⇒ Object
Set the content type of the response.
- #created? ⇒ Boolean
- #delete_cookie(key, value = {}) ⇒ Object
-
#do_not_cache! ⇒ Object
Specifies that the content shouldn't be cached.
- #etag ⇒ Object
- #etag=(value) ⇒ Object
- #forbidden? ⇒ Boolean
- #include?(header) ⇒ Boolean
- #informational? ⇒ Boolean
- #invalid? ⇒ Boolean
- #location ⇒ Object
- #location=(location) ⇒ Object
- #media_type ⇒ Object
- #media_type_params ⇒ Object
- #method_not_allowed? ⇒ Boolean
- #moved_permanently? ⇒ Boolean
- #no_content? ⇒ Boolean
- #not_acceptable? ⇒ Boolean
- #not_found? ⇒ Boolean
- #ok? ⇒ Boolean
- #precondition_failed? ⇒ Boolean
- #redirect? ⇒ Boolean
- #redirection? ⇒ Boolean
- #request_timeout? ⇒ Boolean
- #server_error? ⇒ Boolean
- #set_cookie(key, value) ⇒ Object
- #set_cookie_header ⇒ Object
- #set_cookie_header=(value) ⇒ Object
- #successful? ⇒ Boolean
- #unauthorized? ⇒ Boolean
- #unprocessable? ⇒ Boolean
Instance Method Details
#accepted? ⇒ Boolean
185 |
# File 'lib/rack/response.rb', line 185 def accepted?; status == 202; end |
#add_header(key, value) ⇒ Object
Add a header that may have multiple values.
Example:
response.add_header 'vary', 'accept-encoding'
response.add_header 'vary', 'cookie'
assert_equal 'accept-encoding,cookie', response.get_header('vary')
213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 |
# File 'lib/rack/response.rb', line 213 def add_header(key, value) raise ArgumentError unless key.is_a?(String) if value.nil? return get_header(key) end value = value.to_s if header = get_header(key) if header.is_a?(Array) header << value else set_header(key, [header, value]) end else set_header(key, value) end end |
#bad_request? ⇒ Boolean
188 |
# File 'lib/rack/response.rb', line 188 def bad_request?; status == 400; end |
#cache!(duration = 3600, directive: "public") ⇒ Object
Specify that the content should be cached.
301 302 303 304 305 306 |
# File 'lib/rack/response.rb', line 301 def cache!(duration = 3600, directive: "public") unless headers[CACHE_CONTROL] =~ /no-cache/ set_header CACHE_CONTROL, "#{directive}, max-age=#{duration}" set_header EXPIRES, (Time.now + duration).httpdate end end |
#cache_control ⇒ Object
284 285 286 |
# File 'lib/rack/response.rb', line 284 def cache_control get_header CACHE_CONTROL end |
#cache_control=(value) ⇒ Object
288 289 290 |
# File 'lib/rack/response.rb', line 288 def cache_control=(value) set_header CACHE_CONTROL, value end |
#client_error? ⇒ Boolean
180 |
# File 'lib/rack/response.rb', line 180 def client_error?; status >= 400 && status < 500; end |
#content_length ⇒ Object
251 252 253 254 |
# File 'lib/rack/response.rb', line 251 def content_length cl = get_header CONTENT_LENGTH cl ? cl.to_i : cl end |
#content_type ⇒ Object
Get the content type of the response.
234 235 236 |
# File 'lib/rack/response.rb', line 234 def content_type get_header CONTENT_TYPE end |
#content_type=(content_type) ⇒ Object
Set the content type of the response.
239 240 241 |
# File 'lib/rack/response.rb', line 239 def content_type=(content_type) set_header CONTENT_TYPE, content_type end |
#created? ⇒ Boolean
184 |
# File 'lib/rack/response.rb', line 184 def created?; status == 201; end |
#delete_cookie(key, value = {}) ⇒ Object
268 269 270 271 272 273 274 |
# File 'lib/rack/response.rb', line 268 def (key, value = {}) set_header(SET_COOKIE, Utils.( get_header(SET_COOKIE), key, value ) ) end |
#do_not_cache! ⇒ Object
Specifies that the content shouldn't be cached. Overrides `cache!` if already called.
293 294 295 296 |
# File 'lib/rack/response.rb', line 293 def do_not_cache! set_header CACHE_CONTROL, "no-cache, must-revalidate" set_header EXPIRES, Time.now.httpdate end |
#etag ⇒ Object
308 309 310 |
# File 'lib/rack/response.rb', line 308 def etag get_header ETAG end |
#etag=(value) ⇒ Object
312 313 314 |
# File 'lib/rack/response.rb', line 312 def etag=(value) set_header ETAG, value end |
#forbidden? ⇒ Boolean
190 |
# File 'lib/rack/response.rb', line 190 def forbidden?; status == 403; end |
#include?(header) ⇒ Boolean
200 201 202 |
# File 'lib/rack/response.rb', line 200 def include?(header) has_header?(header) end |
#informational? ⇒ Boolean
177 |
# File 'lib/rack/response.rb', line 177 def informational?; status >= 100 && status < 200; end |
#invalid? ⇒ Boolean
175 |
# File 'lib/rack/response.rb', line 175 def invalid?; status < 100 || status >= 600; end |
#location ⇒ Object
256 257 258 |
# File 'lib/rack/response.rb', line 256 def location get_header "location" end |
#location=(location) ⇒ Object
260 261 262 |
# File 'lib/rack/response.rb', line 260 def location=(location) set_header "location", location end |
#media_type ⇒ Object
243 244 245 |
# File 'lib/rack/response.rb', line 243 def media_type MediaType.type(content_type) end |
#media_type_params ⇒ Object
247 248 249 |
# File 'lib/rack/response.rb', line 247 def media_type_params MediaType.params(content_type) end |
#method_not_allowed? ⇒ Boolean
192 |
# File 'lib/rack/response.rb', line 192 def method_not_allowed?; status == 405; end |
#moved_permanently? ⇒ Boolean
187 |
# File 'lib/rack/response.rb', line 187 def moved_permanently?; status == 301; end |
#no_content? ⇒ Boolean
186 |
# File 'lib/rack/response.rb', line 186 def no_content?; status == 204; end |
#not_acceptable? ⇒ Boolean
193 |
# File 'lib/rack/response.rb', line 193 def not_acceptable?; status == 406; end |
#not_found? ⇒ Boolean
191 |
# File 'lib/rack/response.rb', line 191 def not_found?; status == 404; end |
#ok? ⇒ Boolean
183 |
# File 'lib/rack/response.rb', line 183 def ok?; status == 200; end |
#precondition_failed? ⇒ Boolean
195 |
# File 'lib/rack/response.rb', line 195 def precondition_failed?; status == 412; end |
#redirect? ⇒ Boolean
198 |
# File 'lib/rack/response.rb', line 198 def redirect?; [301, 302, 303, 307, 308].include? status; end |
#redirection? ⇒ Boolean
179 |
# File 'lib/rack/response.rb', line 179 def redirection?; status >= 300 && status < 400; end |
#request_timeout? ⇒ Boolean
194 |
# File 'lib/rack/response.rb', line 194 def request_timeout?; status == 408; end |
#server_error? ⇒ Boolean
181 |
# File 'lib/rack/response.rb', line 181 def server_error?; status >= 500 && status < 600; end |
#set_cookie(key, value) ⇒ Object
264 265 266 |
# File 'lib/rack/response.rb', line 264 def (key, value) add_header SET_COOKIE, Utils.(key, value) end |
#set_cookie_header ⇒ Object
276 277 278 |
# File 'lib/rack/response.rb', line 276 def get_header SET_COOKIE end |
#set_cookie_header=(value) ⇒ Object
280 281 282 |
# File 'lib/rack/response.rb', line 280 def (value) set_header SET_COOKIE, value end |
#successful? ⇒ Boolean
178 |
# File 'lib/rack/response.rb', line 178 def successful?; status >= 200 && status < 300; end |
#unauthorized? ⇒ Boolean
189 |
# File 'lib/rack/response.rb', line 189 def ; status == 401; end |
#unprocessable? ⇒ Boolean
196 |
# File 'lib/rack/response.rb', line 196 def unprocessable?; status == 422; end |