Module | Merb::ConditionalGetMixin |
In: |
lib/merb-core/controller/mixins/conditional_get.rb
|
Provides conditional get support in Merb core. Conditional get support is intentionally simple and does not do fancy stuff like making ETag value from Ruby objects for you.
The most interesting method for end user is +request_fresh?+ that is used after setting of last modification time or ETag:
def show
self.etag = Digest::SHA1.hexdigest(calculate_cache_key(params)) if request_fresh? self.status = 304 return '' else @product = Product.get(params[:id]) display @product end
end
Sets ETag response header by calling to_s on the argument.
tag<~to_s>: | value of ETag header enclosed in double quotes as required by the RFC |
:api: public
<Boolean>:: true if ETag response header equals If-None-Match request header, false otherwise
:api: public
Sets Last-Modified response header.
tag<Time>:: resource modification timestamp converted into format required by the RFC
:api: public
<Boolean>:: true if Last-Modified response header is < than If-Modified-Since request header value, false otherwise.
:api: public