aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/caching/fragments.rb
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2008-06-25 12:12:30 +0100
committerPratik Naik <pratiknaik@gmail.com>2008-06-25 12:12:30 +0100
commit01571c0fd73a31f78411d6cad6484ddd82ec4778 (patch)
treed0565f7ad3fd5a65aafbf191170094b90d7ef543 /actionpack/lib/action_controller/caching/fragments.rb
parentb5e9badea281ce0c371ff1c00461febe66f4e2b2 (diff)
parent670e22e3724791f51d639f409930fba5af920081 (diff)
downloadrails-01571c0fd73a31f78411d6cad6484ddd82ec4778.tar.gz
rails-01571c0fd73a31f78411d6cad6484ddd82ec4778.tar.bz2
rails-01571c0fd73a31f78411d6cad6484ddd82ec4778.zip
Merge commit 'mainstream/master'
Conflicts: actionpack/lib/action_view/helpers/javascript_helper.rb activesupport/lib/active_support/dependencies.rb activesupport/lib/active_support/inflector.rb activesupport/lib/active_support/values/time_zone.rb
Diffstat (limited to 'actionpack/lib/action_controller/caching/fragments.rb')
-rw-r--r--actionpack/lib/action_controller/caching/fragments.rb18
1 files changed, 10 insertions, 8 deletions
diff --git a/actionpack/lib/action_controller/caching/fragments.rb b/actionpack/lib/action_controller/caching/fragments.rb
index 578e031a17..45946421fc 100644
--- a/actionpack/lib/action_controller/caching/fragments.rb
+++ b/actionpack/lib/action_controller/caching/fragments.rb
@@ -61,16 +61,18 @@ module ActionController #:nodoc:
end
def fragment_for(block, name = {}, options = nil) #:nodoc:
- unless perform_caching then block.call; return end
-
- buffer = yield
-
- if cache = read_fragment(name, options)
- buffer.concat(cache)
+ if perform_caching
+ buffer = yield
+
+ if cache = read_fragment(name, options)
+ buffer.concat(cache)
+ else
+ pos = buffer.length
+ block.call
+ write_fragment(name, buffer[pos..-1], options)
+ end
else
- pos = buffer.length
block.call
- write_fragment(name, buffer[pos..-1], options)
end
end