Permalink
Browse files

Properly cache value when it is "false"

  • Loading branch information...
1 parent e7ec79d commit 551f31340592b562a206591f45c76678830fc934 @hasclass hasclass committed with vijaydev Jul 8, 2011
Showing with 7 additions and 2 deletions.
  1. +2 −2 activesupport/lib/active_support/cache.rb
  2. +5 −0 activesupport/test/caching_test.rb
@@ -555,7 +555,7 @@ def initialize(value, options = {})
@expires_in = options[:expires_in]
@expires_in = @expires_in.to_f if @expires_in
@created_at = Time.now.to_f
- if value
+ if defined?(value)
if should_compress?(value, options)
@value = Zlib::Deflate.deflate(Marshal.dump(value))
@compressed = true
@@ -574,7 +574,7 @@ def raw_value
# Get the value stored in the cache.
def value
- if @value
+ if defined?(@value)
val = compressed? ? Marshal.load(Zlib::Inflate.inflate(@value)) : @value
unless val.frozen?
val.freeze rescue nil
@@ -188,6 +188,11 @@ def test_should_read_and_write_nil
assert_equal nil, @cache.read('foo')
end
+ def test_should_read_and_write_false
+ assert_equal true, @cache.write('foo', false)
+ assert_equal false, @cache.read('foo')
+ end
+
def test_read_multi
@cache.write('foo', 'bar')
@cache.write('fu', 'baz')

0 comments on commit 551f313

Please sign in to comment.