From 20d6fdd2567b44fc7de9768a6dedd50d2ea9c4ce Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Sat, 22 Nov 2008 13:19:11 -0600 Subject: [PATCH] write_fragment returns content if caching is disabled [#846 state:resolved] --- .../action_controller/caching/fragments.rb | 22 +++++++++---------- actionpack/test/controller/caching_test.rb | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/actionpack/lib/action_controller/caching/fragments.rb b/actionpack/lib/action_controller/caching/fragments.rb index 31cbe27452327..c41b1a12cffda 100644 --- a/actionpack/lib/action_controller/caching/fragments.rb +++ b/actionpack/lib/action_controller/caching/fragments.rb @@ -10,23 +10,23 @@ module Caching # <%= render :partial => "topic", :collection => Topic.find(:all) %> # <% end %> # - # This cache will bind to the name of the action that called it, so if this code was part of the view for the topics/list action, you would - # be able to invalidate it using expire_fragment(:controller => "topics", :action => "list"). - # - # This default behavior is of limited use if you need to cache multiple fragments per action or if the action itself is cached using + # This cache will bind to the name of the action that called it, so if this code was part of the view for the topics/list action, you would + # be able to invalidate it using expire_fragment(:controller => "topics", :action => "list"). + # + # This default behavior is of limited use if you need to cache multiple fragments per action or if the action itself is cached using # caches_action, so we also have the option to qualify the name of the cached fragment with something like: # # <% cache(:action => "list", :action_suffix => "all_topics") do %> # - # That would result in a name such as "/topics/list/all_topics", avoiding conflicts with the action cache and with any fragments that use a - # different suffix. Note that the URL doesn't have to really exist or be callable - the url_for system is just used to generate unique - # cache names that we can refer to when we need to expire the cache. - # + # That would result in a name such as "/topics/list/all_topics", avoiding conflicts with the action cache and with any fragments that use a + # different suffix. Note that the URL doesn't have to really exist or be callable - the url_for system is just used to generate unique + # cache names that we can refer to when we need to expire the cache. + # # The expiration call for this example is: - # + # # expire_fragment(:controller => "topics", :action => "list", :action_suffix => "all_topics") module Fragments - # Given a key (as described in expire_fragment), returns a key suitable for use in reading, + # Given a key (as described in expire_fragment), returns a key suitable for use in reading, # writing, or expiring a cached fragment. If the key is a hash, the generated key is the return # value of url_for on that hash (without the protocol). All keys are prefixed with "views/" and uses # ActiveSupport::Cache.expand_cache_key for the expansion. @@ -50,7 +50,7 @@ def fragment_for(buffer, name = {}, options = nil, &block) #:nodoc: # Writes content to the location signified by key (see expire_fragment for acceptable formats) def write_fragment(key, content, options = nil) - return unless cache_configured? + return content unless cache_configured? key = fragment_cache_key(key) diff --git a/actionpack/test/controller/caching_test.rb b/actionpack/test/controller/caching_test.rb index eb106c1eb4324..10c65acd9accd 100644 --- a/actionpack/test/controller/caching_test.rb +++ b/actionpack/test/controller/caching_test.rb @@ -527,7 +527,7 @@ def test_write_fragment_with_caching_enabled def test_write_fragment_with_caching_disabled assert_nil @store.read('views/name') ActionController::Base.perform_caching = false - assert_equal nil, @controller.write_fragment('name', 'value') + assert_equal 'value', @controller.write_fragment('name', 'value') assert_nil @store.read('views/name') end