Skip to content

Commit

Permalink
caching 'false' properly
Browse files Browse the repository at this point in the history
  • Loading branch information
vijaydev committed Nov 22, 2011
1 parent 3df6c73 commit cd392fd
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
4 changes: 2 additions & 2 deletions activesupport/lib/active_support/cache.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
unless value.nil?
if should_compress?(value, options)
@value = Zlib::Deflate.deflate(Marshal.dump(value))
@compressed = true
Expand All @@ -574,7 +574,7 @@ def raw_value

# Get the value stored in the cache.
def value
if @value
unless @value.nil?
val = compressed? ? Marshal.load(Zlib::Inflate.inflate(@value)) : @value
unless val.frozen?
val.freeze rescue nil
Expand Down
5 changes: 5 additions & 0 deletions activesupport/test/caching_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down

0 comments on commit cd392fd

Please sign in to comment.