Class: ActiveSupport::Cache::FileStore
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Store
|
|
|
Instance Chain:
self,
Strategy::LocalCache,
Store
|
|
| Inherits: |
ActiveSupport::Cache::Store
|
| Defined in: | activesupport/lib/active_support/cache/file_store.rb |
Overview
A cache store implementation which stores everything on the filesystem.
FileStore implements the Strategy::LocalCache strategy which implements an in-memory cache inside of a block.
Constant Summary
-
DIR_FORMATTER =
# File 'activesupport/lib/active_support/cache/file_store.rb', line 18"%03X" -
FILENAME_MAX_SIZE =
# File 'activesupport/lib/active_support/cache/file_store.rb', line 19
max filename size on file system is 255, minus room for timestamp, pid, and random characters appended by Tempfile (used by atomic write)
226 -
FILEPATH_MAX_SIZE =
# File 'activesupport/lib/active_support/cache/file_store.rb', line 20
max is 1024, plus some room
900 -
GITKEEP_FILES =
# File 'activesupport/lib/active_support/cache/file_store.rb', line 21[".gitkeep", ".keep"].freeze
Store - Inherited
Class Attribute Summary
-
.supports_cache_versioning? ⇒ Boolean
readonly
Advertise cache versioning support.
Store - Inherited
Class Method Summary
Instance Attribute Summary
Instance Method Summary
-
#cleanup(options = nil)
Preemptively iterates through all stored keys and removes the ones which have expired.
-
#clear(options = nil)
Deletes all items from the cache.
-
#decrement(name, amount = 1, options = nil)
Decrements an already existing integer value that is stored in the cache.
- #delete_matched(matcher, options = nil)
-
#increment(name, amount = 1, options = nil)
Increments an already existing integer value that is stored in the cache.
Strategy::LocalCache - Included
| #middleware | Middleware class can be inserted as a |
| #with_local_cache | Use a local cache for the duration of block. |
Store - Inherited
| #cleanup | Cleanups the cache by removing expired entries. |
| #clear | Clears the entire cache. |
| #decrement | Decrements an integer value in the cache. |
| #delete | Deletes an entry in the cache. |
| #delete_matched | Deletes all entries with keys matching the pattern. |
| #delete_multi | Deletes multiple entries in the cache. |
| #exist? | Returns |
| #fetch | Fetches data from the cache, using the given key. |
| #fetch_multi | Fetches data from the cache, using the given keys. |
| #increment | Increments an integer value in the cache. |
| #mute | Silences the logger within a block. |
| #read | Reads data from the cache, using the given key. |
| #read_multi | Reads multiple values at once from the cache. |
| #silence, | |
| #silence! | Silences the logger. |
| #write | Writes the value to the cache, with the key. |
| #write_multi |
|
| #key_matcher | Adds the namespace defined in the options to a pattern designed to match keys. |
Constructor Details
.new(cache_path, **options) ⇒ FileStore
# File 'activesupport/lib/active_support/cache/file_store.rb', line 23
def initialize(cache_path, **) super() @cache_path = cache_path.to_s end
Class Attribute Details
.supports_cache_versioning? ⇒ Boolean (readonly)
Advertise cache versioning support.
# File 'activesupport/lib/active_support/cache/file_store.rb', line 29
def self.supports_cache_versioning? true end
Instance Attribute Details
#cache_path (readonly)
[ GitHub ]# File 'activesupport/lib/active_support/cache/file_store.rb', line 16
attr_reader :cache_path
Instance Method Details
#cleanup(options = nil)
Preemptively iterates through all stored keys and removes the ones which have expired.
# File 'activesupport/lib/active_support/cache/file_store.rb', line 43
def cleanup( = nil) = () search_dir(cache_path) do |fname| entry = read_entry(fname, **) delete_entry(fname, **) if entry && entry.expired? end end
#clear(options = nil)
Deletes all items from the cache. In this case it deletes all the entries in the specified file store directory except for .keep or .gitkeep. Be careful which directory is specified in your config file when using FileStore because everything in that directory will be deleted.
# File 'activesupport/lib/active_support/cache/file_store.rb', line 36
def clear( = nil) root_dirs = (Dir.children(cache_path) - GITKEEP_FILES) FileUtils.rm_r(root_dirs.collect { |f| File.join(cache_path, f) }) rescue Errno::ENOENT, Errno::ENOTEMPTY end
#decrement(name, amount = 1, options = nil)
Decrements an already existing integer value that is stored in the cache. If the key is not found nothing is done.
# File 'activesupport/lib/active_support/cache/file_store.rb', line 59
def decrement(name, amount = 1, = nil) modify_value(name, -amount, ) end
#delete_matched(matcher, options = nil)
[ GitHub ]# File 'activesupport/lib/active_support/cache/file_store.rb', line 63
def delete_matched(matcher, = nil) = () instrument(:delete_matched, matcher.inspect) do matcher = key_matcher(matcher, ) search_dir(cache_path) do |path| key = file_path_key(path) delete_entry(path, **) if key.match(matcher) end end end
#increment(name, amount = 1, options = nil)
Increments an already existing integer value that is stored in the cache. If the key is not found nothing is done.
# File 'activesupport/lib/active_support/cache/file_store.rb', line 53
def increment(name, amount = 1, = nil) modify_value(name, amount, ) end