# File lib/action_controller/metal/conditional_get.rb, line 39
    def fresh_when(record_or_options, additional_options = {})
      if record_or_options.is_a? Hash
        options = record_or_options
        options.assert_valid_keys(:etag, :last_modified, :public)
      else
        record  = record_or_options
        options = { :etag => record, :last_modified => record.try(:updated_at) }.merge(additional_options)
      end

      response.etag          = options[:etag]          if options[:etag]
      response.last_modified = options[:last_modified] if options[:last_modified]
      response.cache_control[:public] = true if options[:public]

      head :not_modified if request.fresh?(response)
    end