| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This reverts commit abe915f23777efe10f17d611bf5718ca855a0704.
This broke all existing keys and it's wrong anyway. The array is just there as a convenience option for building the string. It's intentional that [ "stuff"] and "stuff" generates the same key.
|
| |
|
|
|
|
|
| |
This reverts commit df3701872d6c97ff49943aea30761b47e60fa9fe, reversing
changes made to a0fd9fb01730af12d66a27b5665cc010bd3b90b4.
|
| |
|
|\
| |
| | |
Fix expanding cache key for single element arrays
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In short:
expand_cache_key(element) should not equal expand_cache_key([element])
This way a fragment cache key for an index page with only a single
element in the collection is different than a fragment cache for a
typical show page for that element.
|
|/
|
|
| |
actually caching for development and test environments.
|
| |
|
|
|
|
|
|
|
| |
(part 2)
`nil` and `false` both expand to `""` (empty string), while `true` expands to
`"true"`; `false` should expand to `"false"`
|
|
|
|
|
| |
`cache_key` method is never called when the argument is a 1-element array
with something that responds to `cache_key`
|
|
|
|
|
|
| |
value, not expecting specifically true or false
Respecting Genuine assert_equal false Edition
|
|
|
|
|
|
|
|
|
| |
return value, not expecting specifically true or false"
Reason: there were some genuine tests for false when
reading values, going to revise those ones.
This reverts commit a539a5e3f3be68f027d3dfe43f88dc9f0642c743.
|
|
|
|
| |
value, not expecting specifically true or false
|
| |
|
|
|
|
| |
method.
|
|
|
|
| |
not exist yet. This can happen if a delete_matched is called before anything is saved in the cache.
|
|
|
|
|
| |
(8d63678d1406c5518d437709af0fde717c0248d7). Before the fix the test was giving a false positive, because file_store.key_file_path would return an empty filename (i.e. test/tmp_cache/4D0/F4D rather than test/tmp_cache/4D0/F4D/xxxx…).
Even though the fix referenced above divides the filename into directories to prevent it from being too long, it seems that 1000 characters will always raise an error, so reducing the key size to 900).
|
|
|
|
| |
for the file system. (https://github.com/rails/rails/issues/3072)
|
|\
| |
| | |
Fix ArgumentError in ActiveSupport::Cache::CacheStore.read_multi
|
| |
| |
| |
| | |
delete_entry call.
|
|/
|
|
| |
instead of frozen objects.
|
|
|
|
|
|
| |
initialized with Pathname
Port from 3-1-stable
|
|\
| |
| | |
MemcacheStore: deserialize the entry reading from local_cache when using
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
| |
to return truthy or falsey objects
|
| |
|
|
|
|
|
|
|
|
| |
regexp is used in expire_fragment
[#5850 state:committed]
Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
|
|
|
|
| |
better default failure messages - let's use them
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: José Valim <jose.valim@gmail.com>
|
|
|
|
|
|
|
|
| |
object and a message of error
[#4611 state:committed]
Signed-off-by: José Valim <jose.valim@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All Caches
* Add default options to initializer that will be sent to all read, write, fetch, exist?, increment, and decrement
* Add support for the :expires_in option to fetch and write for all caches. Cache entries are stored with the create timestamp and a ttl so that expiration can be handled independently of the implementation.
* Add support for a :namespace option. This can be used to set a global prefix for cache entries.
* Deprecate expand_cache_key on ActiveSupport::Cache and move it to ActionController::Caching and ActionDispatch::Http::Cache since the logic in the method used some Rails specific environment variables and was only used by ActionPack classes. Not very DRY but there didn't seem to be a good shared spot and ActiveSupport really shouldn't be Rails specific.
* Add support for :race_condition_ttl to fetch. This setting can prevent race conditions on fetch calls where several processes try to regenerate a recently expired entry at once.
* Add support for :compress option to fetch and write which will compress any data over a configurable threshold.
* Nil values can now be stored in the cache and are distinct from cache misses for fetch.
* Easier API to create new implementations. Just need to implement the methods read_entry, write_entry, and delete_entry instead of overwriting existing methods.
* Since all cache implementations support storing objects, update the docs to state that ActiveCache::Cache::Store implementations should store objects. Keys, however, must be strings since some implementations require that.
* Increase test coverage.
* Document methods which are provided as convenience but which may not be universally available.
MemoryStore
* MemoryStore can now safely be used as the cache for single server sites.
* Make thread safe so that the default cache implementation used by Rails is thread safe. The overhead is minimal and it is still the fastest store available.
* Provide :size initialization option indicating the maximum size of the cache in memory (defaults to 32Mb).
* Add prune logic that removes the least recently used cache entries to keep the cache size from exceeding the max.
* Deprecated SynchronizedMemoryStore since it isn't needed anymore.
FileStore
* Escape key values so they will work as file names on all file systems, be consistent, and case sensitive
* Use a hash algorithm to segment the cache into sub directories so that a large cache doesn't exceed file system limits.
* FileStore can be slow so implement the LocalCache strategy to cache reads for the duration of a request.
* Add cleanup method to keep the disk from filling up with expired entries.
* Fix increment and decrement to use file system locks so they are consistent between processes.
MemCacheStore
* Support all keys. Previously keys with spaces in them would fail
* Deprecate CompressedMemCacheStore since it isn't needed anymore (use :compress => true)
[#4452 state:committed]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
|
| |
|
|
|
|
|
| |
memcache-client and memcached gems, as advertised [#3672 state:resolved]
Signed-off-by: wycats <wycats@gmail.com>
|
| |
|
| |
|
| |
|
|
|
|
| |
is passed in [#2854 state:resolved]
|
|
|
| |
Signed-off-by: Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>
|
| |
|
|
|
|
| |
Shterenzon, Pratik Naik]
|
| |
|
|
|
|
|
|
| |
MemCacheStore
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
|
|
|
|
| |
addresses and options
|
|
|
|
|
|
| |
MemCacheStore#read_multi).
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
|