aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/cache/file_store.rb
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #22278 from poporul/masterGodfrey Chan2016-01-151-3/+9
|\ | | | | Allow to store .keep file in cache directory
| * Allow to store .keep file in cache directoryAlexey Pokhozhaev2015-11-131-3/+9
| |
* | add deprecations for a smooth transition after #22215Michael Grosser2015-11-191-0/+8
| |
* | keep deprecated namespaced_key in case any subclass uses itMichael Grosser2015-11-101-1/+1
| |
* | send normalized keys to the cache backends so they do not need to manage ↵Michael Grosser2015-11-101-15/+13
|/ | | | this themselves
* use prepend instead of extending every instanceMichael Grosser2015-11-061-1/+1
| | | | | extending an instance with a module puts the methods on top of it, prepend does the same but on the class level, so less work for us and more standard way of doing things
* when checking for too long cache keys used the uri encoded fname Cedric Sohrauer2015-04-241-3/+4
|
* Allow AS::Cache::FileStore#clear without cache directoryKohei Suzuki2015-04-091-0/+1
| | | | | | Currently `Rails.cache.clear` raises Errno::ENOENT if it's run just after cloning a new Rails project. It should succeed without removing files or directories.
* fix error with long keys in ActiveSupport::Cache::FileStoreAdam Panzer2014-06-101-0/+5
|
* Copy-edit the parent commitRafael Mendonça França2013-12-121-6/+8
|
* Merge pull request #13268 from aayushkhandelwal11/masterRafael Mendonça França2013-12-121-22/+16
|\ | | | | | | Moving the common code of increment and decrement of cache file store in...
| * Moving the common code of increment and decrement of cache file store into ↵Aayush khandelwal2013-12-121-22/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | seprate function Removing the double checking for the value of id simplifying code for checking conditional code for key Removing the default values for parameters removing reduntant code and asiigning value of id in local variable removing wrongly added line break[ci ckip] reverting code
* | typo rectified [skip ci]Aayush khandelwal2013-12-111-1/+1
|/
* Merge pull request #11785 from grosser/grosser/file-unless-existRafael Mendonça França2013-10-281-0/+1
|\ | | | | | | | | | | | | | | support :unless_exist for FileCache Conflicts: activesupport/CHANGELOG.md activesupport/test/caching_test.rb
| * support :unless_exist for FileCachegrosser2013-08-301-0/+1
| |
* | Fix FileStore#cleanup to no longer rely on missing each_key methodMurray Steele2013-09-111-1/+2
|/
* Add documentation for FileStore#increment and #decrementMatt Stopa2013-07-101-0/+4
| | | | [ci skip]
* Add documentation for #clear on certain Store classesMatt Stopa2013-07-101-0/+1
| | | | [ci skip
* Update the filestore documentation for clearMatt Stopa2013-07-091-0/+3
| | | | [ci skip]
* Fix deletion of empty directories:Charles Jones2013-02-251-2/+2
| | | | | | | | | | | | | | | 1. When comparing the directory to delete against the top level cache_path, use File.realpath to make sure we aren't comparing two unequal strings that point to the same path. This occurs, for example, when cache_path has a trailing slash, which it does in the default Rails configuration. Since the input to delete_empty_directories never has a trailing slash, the comparison will never be true and the top level cache directory (and above) may be deleted. However… 2. File.delete raises EPERM when trying to delete a directory, so no directories have ever been deleted. Changing the code to Dir.delete fixes that.
* Patched Marshal#load to work with constant autoloading ↵Uriel Katz2012-12-011-0/+1
| | | | (active_support/dependecies.rb) (issue #8167)
* removes usage of Object#in? from the code base (the method remains defined ↵Xavier Noria2012-08-061-4/+3
| | | | | | | | | | | | | | | | | | | by Active Support) Selecting which key extensions to include in active_support/rails made apparent the systematic usage of Object#in? in the code base. After some discussion in https://github.com/rails/rails/commit/5ea6b0df9a36d033f21b52049426257a4637028d we decided to remove it and use plain Ruby, which seems enough for this particular idiom. In this commit the refactor has been made case by case. Sometimes include? is the natural alternative, others a simple || is the way you actually spell the condition in your head, others a case statement seems more appropriate. I have chosen the one I liked the most in each case.
* Merge pull request #5125 from winston/log_exception_when_cache_read_failsMichael Koziarski2012-05-211-1/+2
|\ | | | | #read_entry in ActiveSupport::Cache::FileStore should log details of the exception when an exception is thrown
| * #read_entry in ActiveSupport::Cache::FileStore should log details of the ↵Winston2012-02-221-1/+2
| | | | | | | | exception when an exception is thrown.
* | Remove wrong rack/utils dependency from ASSantiago Pastorino2012-05-121-3/+3
| | | | | | | | Closes #6274
* | Merge pull request #4452 from tapajos/e5425c8f68fbb720fcbf4b14e1f154ac27dbbbedAaron Patterson2012-05-031-1/+1
|\ \ | | | | | | Fix cache (FileStore) clear to keep .gitkeep.
| * | Cache (FileStore) clear should keep .gitkeepMarcos Tapajos2012-01-131-1/+1
| | |
* | | Merge pull request #4911 from Floppy/masterAaron Patterson2012-03-301-1/+1
|\ \ \ | |_|/ |/| | Reduce FILENAME_MAX_SIZE in ActiveSupport::Cache::FileStore
| * | Change FILENAME_MAX_SIZE in FileStore to 228.James Smith2012-02-061-1/+1
| |/ | | | | | | In order that temp filenames generated from it will fit in 255 chars. See https://github.com/rails/rails/issues/4907
* / Bug: cache_path.size doesn't return length of filename but size of file if ↵Issei Naruta2012-02-211-1/+1
|/ | | | cache_path is Pathname.
* Fix "in memory" where it should be "in-memory".Cheah Chu Yeow2011-11-131-1/+1
|
* Revert "Fix "in memory" where it should be "in-memory"."Vijay Dev2011-11-111-1/+1
| | | | | | This reverts commit e34e4d43301618307f94123d3710f094297f91f3. Reason: code changes are not allowed in docrails.
* Fix "in memory" where it should be "in-memory".Cheah Chu Yeow2011-11-111-1/+1
|
* Refactor ActiveSupport::Cache::FileStore. used method and deleted duplicate ↵kennyj2011-10-301-3/+4
| | | | code.
* Added fix so that file store does not raise an exception when cache dir does ↵Philippe Huibonhoa2011-09-291-0/+1
| | | | not exist yet. This can happen if a delete_matched is called before anything is saved in the cache.
* No need to create a range objectSantiago Pastorino2011-09-221-3/+3
|
* Fixed issue in file store where it could create a filename that was too long ↵Philippe Huibonhoa2011-09-211-9/+8
| | | | for the file system. (https://github.com/rails/rails/issues/3072)
* Fix ActiveSupport::Cache::FileStore#file_path_key does not work if ↵Gonzalo Rodriguez2011-07-231-1/+1
| | | | | | initialized with Pathname Port from 3-1-stable
* Removed deprecated methods and related tests from ActiveSupportJosh Kalderimis2011-05-251-13/+1
|
* File should be open in read/write mode. When doing lock on a file.Arun Agrawal2011-04-181-1/+1
|
* Remove `#among?` from Active SupportPrem Sichanugrist2011-04-131-2/+2
| | | | | | After a long list of discussion about the performance problem from using varargs and the reason that we can't find a great pair for it, it would be best to remove support for it for now. It will come back if we can find a good pair for it. For now, Bon Voyage, `#among?`.
* Change Object#either? to Object#among? -- thanks to @jamesarosen for the ↵David Heinemeier Hansson2011-04-121-2/+2
| | | | suggestion!
* Using Object#in? and Object#either? in various placesPrem Sichanugrist2011-04-111-2/+3
| | | | There're a lot of places in Rails source code which make a lot of sense to switching to Object#in? or Object#either? instead of using [].include?.
* Fix FileStore cache incorrectly regenerating its key from a pathname when a ↵Denis Odorcic2010-11-071-4/+3
| | | | | | | | regexp is used in expire_fragment [#5850 state:committed] Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
* require conversions to use String#ordSantiago Pastorino2010-06-121-0/+1
|
* ActiveSupport::Cache refactoringBrian Durand2010-04-271-41/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Instrumenting cache stores.José Valim2009-09-201-21/+25
|
* Add expiry support File cache store [#1693 state:resolved] [Roman ↵Pratik Naik2009-06-211-1/+13
| | | | Shterenzon, Pratik Naik]
* Fix requireJeremy Kemper2009-03-291-1/+1
|
* Explicit File#atomic_write dependencyJeremy Kemper2009-03-291-0/+2
|