# conditional_get.rb

Path: | lib/merb-core/controller/mixins/conditional_get.rb
Last Update: | Tue Aug 21 06:36:32 +0000 2012

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:

@example

      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

[Validate]