diff options
author | Michael Grosser <michael@grosser.it> | 2015-11-06 08:46:21 -0800 |
---|---|---|
committer | Michael Grosser <michael@grosser.it> | 2015-11-29 20:54:09 -0800 |
commit | 8c3bdb757838f86117fc83f24f8c4290d22a71d5 (patch) | |
tree | 6687b438ef307851fa44a89c6b3132672fff0028 /activesupport | |
parent | 312485f3e88af3966b586275ae5097198bfef6a0 (diff) | |
download | rails-8c3bdb757838f86117fc83f24f8c4290d22a71d5.tar.gz rails-8c3bdb757838f86117fc83f24f8c4290d22a71d5.tar.bz2 rails-8c3bdb757838f86117fc83f24f8c4290d22a71d5.zip |
even if a write fails, store the raw value
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/lib/active_support/cache/mem_cache_store.rb | 8 | ||||
-rw-r--r-- | activesupport/test/caching_test.rb | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/activesupport/lib/active_support/cache/mem_cache_store.rb b/activesupport/lib/active_support/cache/mem_cache_store.rb index 4b0ad37586..46110b09da 100644 --- a/activesupport/lib/active_support/cache/mem_cache_store.rb +++ b/activesupport/lib/active_support/cache/mem_cache_store.rb @@ -36,13 +36,13 @@ module ActiveSupport end def write_entry(key, entry, options) # :nodoc: - retval = super - if options[:raw] && local_cache && retval + if options[:raw] && local_cache raw_entry = Entry.new(entry.value.to_s) raw_entry.expires_at = entry.expires_at - local_cache.write_entry(key, raw_entry, options) + super(key, raw_entry, options) + else + super end - retval end end diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb index 7bef73136c..a1bd2d5356 100644 --- a/activesupport/test/caching_test.rb +++ b/activesupport/test/caching_test.rb @@ -655,6 +655,14 @@ module LocalCacheBehavior end end + def test_local_cache_of_read_nil + @cache.with_local_cache do + assert_equal nil, @cache.read('foo') + @cache.send(:bypass_local_cache) { @cache.write 'foo', 'bar' } + assert_equal nil, @cache.read('foo') + end + end + def test_local_cache_of_delete @cache.with_local_cache do @cache.write('foo', 'bar') |