public
Description: Cache render calls in Rails controllers.
Homepage:
Clone URL: git://github.com/ryanb/render-caching.git
name age message
file .gitignore Loading commit data...
file CHANGELOG Thu Jun 19 13:23:31 -0700 2008 initial import [ryanb]
file LICENSE Thu Jun 19 13:23:31 -0700 2008 initial import [ryanb]
file Manifest
file README
file Rakefile
file TODO Thu Jun 19 13:23:31 -0700 2008 initial import [ryanb]
directory lib/
file render-caching.gemspec Thu Jun 19 15:29:40 -0700 2008 version bump to 0.1.1 [ryanb]
directory script/
directory spec/ Thu Jun 19 15:27:06 -0700 2008 render with cache options are passed on to cach... [ryanb]
directory tasks/
README
= Render Caching

Cache render calls in Rails controllers.


== Install

First install the gem.

  gem install ryanb-render-caching --source=http://gems.github.com

Then specify it in your Rails config.

  config.gem 'ryanb-render-caching', :lib => 'render_caching', :source => 'http://gems.github.com'

Rails 2.1 or later required.


== Usage

This gem adds the render_with_cache method to all controllers. Call 
this inside of an action to cache the view.

  def show
    @user = User.find(params[:id])
    render_with_cache
  end

This will cache the full rendered contents into a key matching the URL 
path (similar to action caching). You can change this key by simply 
passing any parameter.

  def show
    @user = User.find(params[:id])
    render_with_cache @user.cache_key
  end

Cache key is a method supplied by Rails. This includes the updated_at 
time which will give you an auto-expiring cache when the user record is 
updated.

You can also supply a block to the render call which will only get 
executed if there is no cache. Here is a good place to do any custom 
render calls.

  def show
    @user = User.find(params[:id])
    render_with_cache @user.cache_key do
      render :layout => false
    end
  end


== Development

This project can be found on github at the following URL.

http://github.com/ryanb/render-caching/

If you would like to contribute to this project, please fork the 
repository and send me a pull request.