From fedadd2b69f9b1d2c6b9340c8c426ce859d890ca Mon Sep 17 00:00:00 2001 From: Ryan Bates Date: Thu, 19 Jun 2008 15:27:06 -0700 Subject: [PATCH] render with cache options are passed on to cache.write --- lib/render_caching/controller_additions.rb | 4 ++-- spec/render_caching/controller_additions_spec.rb | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/render_caching/controller_additions.rb b/lib/render_caching/controller_additions.rb index 087feef..98c484f 100644 --- a/lib/render_caching/controller_additions.rb +++ b/lib/render_caching/controller_additions.rb @@ -2,7 +2,7 @@ module RenderCaching module ControllerAdditions private - def render_with_cache(key = nil) + def render_with_cache(key = nil, options = nil) key ||= request.request_uri body = Rails.cache.read(key) if body @@ -10,7 +10,7 @@ def render_with_cache(key = nil) else yield if block_given? render unless performed? - Rails.cache.write(key, response.body) + Rails.cache.write(key, response.body, options) end end end diff --git a/spec/render_caching/controller_additions_spec.rb b/spec/render_caching/controller_additions_spec.rb index f45a814..4579698 100644 --- a/spec/render_caching/controller_additions_spec.rb +++ b/spec/render_caching/controller_additions_spec.rb @@ -74,4 +74,9 @@ def self.cache Rails.cache.write('some_key', 'page content') render_with_cache('some_key') { violated('block was executed') } end + + it "should pass options to cache write call" do + Rails.cache.expects(:write).with('some_key', @response.body, :expires_in => 5) + render_with_cache('some_key', :expires_in => 5) + end end