aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/cache.rb
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #4007 from exviva/expand_cache_key_for_one_element_arrayJosé Valim2011-12-161-1/+1
|\ | | | | Fix expanding cache key for single element arrays
| * Fix expanding cache key for single element arraysOlek Janiszewski2011-12-161-1/+1
| | | | | | | | | | | | | | | | | | 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.
* | Add ActiveSupport::Cache::NullStore to expose caching interface without ↵Brian Durand2011-12-121-0/+1
|/ | | | actually caching for development and test environments.
* Optimize cache expansion by skipping rails cache id in nested keys.José Valim2011-11-231-54/+60
|
* Fix #3737 AS::expand_cache_key generates wrong key in certain situations ↵Olek Janiszewski2011-11-231-1/+1
| | | | | | | (part 2) `nil` and `false` both expand to `""` (empty string), while `true` expands to `"true"`; `false` should expand to `"false"`
* Fix #3737 AS::expand_cache_key generates wrong key in certain situationsOlek Janiszewski2011-11-231-10/+4
| | | | | `cache_key` method is never called when the argument is a 1-element array with something that responds to `cache_key`
* Revert "tests predicates according to the boolean interpretation of their ↵Xavier Noria2011-11-211-2/+6
| | | | | | | | | 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.
* tests predicates according to the boolean interpretation of their return ↵Xavier Noria2011-11-211-6/+2
| | | | value, not expecting specifically true or false
* cache entry: options[:compressed] is a regular flag, no need for !!Xavier Noria2011-11-211-1/+1
|
* adds a comment to clarify an edge caseXavier Noria2011-11-211-0/+3
|
* a couple of spurious spaces I saw in passingXavier Noria2011-11-211-2/+2
|
* fix a document for :compress_threshold. DEFAULT_COMPRESS_LIMIT is 16K.kennyj2011-10-301-1/+1
|
* Merge pull request #3464 from kennyj/avoid_to_call_twiceSantiago Pastorino2011-10-291-8/+5
|\ | | | | avoided to call `Marshal.dump` twice
| * avoided to call twicekennyj2011-10-301-8/+5
| |
* | Merge pull request #3463 from kennyj/fix_document_for_cacheSantiago Pastorino2011-10-291-1/+1
|\ \ | |/ |/| fix a document for race_condition_ttl. ActiveSupport::Cache::MemoryCache isn't exist.
| * fix a document for race_condition_ttl. ActiveSupport::Cache::MemoryCache ↵kennyj2011-10-301-1/+1
| | | | | | | | isn't exist
* | removed reference to SynchronizedMemoryStore and CompressedMemCacheStore ↵kennyj2011-10-301-2/+0
|/ | | | (the remaining code from 9cafc28874)
* Merge pull request #2393 from bdurand/fix_cache_read_multiSantiago Pastorino2011-08-011-1/+1
|\ | | | | Fix ArgumentError in ActiveSupport::Cache::CacheStore.read_multi
| * Pass options in ActiveSupport::Cache::CacheStore#read_multi through to the ↵Brian Durand2011-08-011-1/+1
| | | | | | | | delete_entry call.
* | Change ActiveSupport::Cache behavior to always return duplicate objects ↵Brian Durand2011-07-291-15/+8
|/ | | | instead of frozen objects.
* Properly cache value when it is "false"Sebi Burkhard2011-07-081-2/+2
|
* minor edit in 7896ac3Vijay Dev2011-07-051-1/+1
|
* general grammar cleanup of cache docsMatt Jankowski2011-07-011-24/+26
|
* do not test explicit equality of predicate methods, they should be allowed ↵Aaron Patterson2011-03-071-5/+1
| | | | to return truthy or falsey objects
* refactor calls to to_param in expand_key methodAaron Patterson2011-03-071-9/+10
|
* use sort_by instead of sort()Aaron Patterson2011-03-051-1/+1
|
* Merge branch 'master' of https://github.com/cylence/docrails into cylence-masterAditya Sanghi2010-11-291-1/+1
|\
| * Corrected typo and wording.Ryan L. Cross2010-10-241-1/+1
| |
* | Resolves LH #6063, should be :expires_in not :expire_inAditya Sanghi2010-11-271-2/+2
|/
* Exception handling more readableThiago Pradi2010-09-191-2/+2
| | | | | | [#5601 state:committed] Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
* Revert "Setup explicit requires for files with exceptions. Removed them from ↵José Valim2010-09-021-1/+0
| | | | | | | | autoloading." Booting a new Rails application does not work after this commit [#5359 state:open] This reverts commit 38a421b34d0b414564e919f67d339fac067a56e6.
* Setup explicit requires for files with exceptions. Removed them from ↵Łukasz Strzałkowski2010-09-021-0/+1
| | | | | | autoloading. Signed-off-by: José Valim <jose.valim@gmail.com>
* Support pluggable cache stores.Mike Perham2010-08-281-1/+8
| | | | | | [#5486 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* Deletes trailing whitespaces (over text files only find * -type f -exec sed ↵Santiago Pastorino2010-08-141-11/+11
| | | | 's/[ \t]*$//' -i {} \;)
* Make options an attr_readerSantiago Pastorino2010-07-301-6/+1
|
* Merge remote branch 'rails/master'Xavier Noria2010-07-301-2/+0
|\
| * removing unused variableNeeraj Singh2010-07-281-2/+0
| |
* | editing the documentation regarding :race_condition_ttl and :expires_in ↵Neeraj Singh2010-07-281-22/+23
| | | | | | | | option in AS cache
* | editing a sentenceNeeraj Singh2010-07-281-1/+1
| |
* | making comments have a consistent theme of narrativeNeeraj Singh2010-07-261-26/+22
|/
* Allow instrumentation of cache hits and misses. [#4888 state:resolved]Hongli Lai (Phusion)2010-06-211-25/+40
| | | | Signed-off-by: José Valim <jose.valim@gmail.com>
* Fix a bunch of minor spelling mistakesEvgeniy Dolzhenko2010-06-111-1/+1
|
* Change event namespace ordering to most-significant first [#4504 state:resolved]Justin George2010-05-021-1/+1
| | | | | | | | | More work still needs to be done on some of these names (render_template.action_view and render_template!.action_view particularly) but this allows (for example) /^sql/ to subscribe to all the various ORMs without further modification Signed-off-by: José Valim <jose.valim@gmail.com>
* ActiveSupport::Cache refactoringBrian Durand2010-04-271-69/+427
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Use backtrace cleaner for dev mode exception pageJoshua Peek2010-01-161-4/+4
|
* Use underscore in notification namespaces.José Valim2010-01-041-1/+1
|
* Use namespaces in notifications.José Valim2010-01-031-2/+2
|
* cache.rb requires active_support/core_ext/string/inflections because it uses ↵Xavier Noria2010-01-011-0/+1
| | | | camelize
* Fix arg destructureJeremy Kemper2009-11-081-2/+2
|
* Ruby 1.9.2: work around changes to flatten and nil.to_strJeremy Kemper2009-11-081-1/+2
|