diff options
author | Richard Schneeman <richard.schneeman@gmail.com> | 2016-09-22 09:29:25 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-22 09:29:25 -0500 |
commit | bf19c2230d20f7679b1fb52505c49c183627b235 (patch) | |
tree | 1c84d1353d124ad7c99c16efc768e048e4ccb9d3 /activesupport | |
parent | 19966242163611e61d45ee4033f28aa6f967906a (diff) | |
parent | 97544ed1770bf3c169f3b8f3711917bbf37045bc (diff) | |
download | rails-bf19c2230d20f7679b1fb52505c49c183627b235.tar.gz rails-bf19c2230d20f7679b1fb52505c49c183627b235.tar.bz2 rails-bf19c2230d20f7679b1fb52505c49c183627b235.zip |
Merge pull request #26524 from y-yagi/add_check_of_argument
add check of argument
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/lib/active_support/cache.rb | 5 | ||||
-rw-r--r-- | activesupport/test/caching_test.rb | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/cache.rb b/activesupport/lib/active_support/cache.rb index e71f2673ab..e65e472d08 100644 --- a/activesupport/lib/active_support/cache.rb +++ b/activesupport/lib/active_support/cache.rb @@ -361,6 +361,9 @@ module ActiveSupport # the cache with the given keys, then that data is returned. Otherwise, # the supplied block is called for each key for which there was no data, # and the result will be written to the cache and returned. + # Therefore, you need to pass a block that returns the data to be written + # to the cache. If you do not want to write the cache when the cache is + # not found, use #read_multi. # # Options are passed to the underlying cache implementation. # @@ -374,6 +377,8 @@ module ActiveSupport # # "unknown_key" => "Fallback value for key: unknown_key" } # def fetch_multi(*names) + raise ArgumentError, "Missing block: `Cache#fetch_multi` requires a block." unless block_given? + options = names.extract_options! options = merged_options(options) results = read_multi(*names, options) diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb index a669d666be..0df4173a1a 100644 --- a/activesupport/test/caching_test.rb +++ b/activesupport/test/caching_test.rb @@ -363,6 +363,12 @@ module CacheStoreBehavior assert_equal({ foo => "FOO!", bar => "BAM!" }, values) end + def test_fetch_multi_without_block + assert_raises(ArgumentError) do + @cache.fetch_multi("foo") + end + end + def test_read_and_write_compressed_small_data @cache.write("foo", "bar", compress: true) assert_equal "bar", @cache.read("foo") |