Ensure objects cached with MemoryStore are immutable

This commit is contained in:
Joshua Peek 2008-08-19 19:20:10 -05:00
parent a8ece12fe2
commit 5de340e79f
2 changed files with 7 additions and 1 deletions

View File

@ -22,7 +22,7 @@ module ActiveSupport
def write(name, value, options = nil)
@guard.synchronize do
super
@data[name] = value
@data[name] = value.freeze
end
end

View File

@ -120,4 +120,10 @@ class MemoryStoreTest < Test::Unit::TestCase
def test_fetch_with_forced_cache_miss
@cache.fetch('foo', :force => true) { 'bar' }
end
def test_store_objects_should_be_immutable
@cache.write('foo', 'bar')
assert_raise(ActiveSupport::FrozenObjectError) { @cache.read('foo').gsub!(/.*/, 'baz') }
assert_equal 'bar', @cache.read('foo')
end
end