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" -
EXCLUDED_DIRS =
# File 'activesupport/lib/active_support/cache/file_store.rb', line 21[".", ".."].freeze
-
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 and random characters appended by Tempfile (used by atomic write)
228 -
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 22[".gitkeep", ".keep"].freeze
Class Attribute Summary
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. |
| #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 = nil) ⇒ FileStore
# File 'activesupport/lib/active_support/cache/file_store.rb', line 24
def initialize(cache_path, = nil) super() @cache_path = cache_path.to_s 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 39
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 32
def clear( = nil) root_dirs = exclude_from(cache_path, EXCLUDED_DIRS + GITKEEP_FILES) FileUtils.rm_r(root_dirs.collect { |f| File.join(cache_path, f) }) rescue Errno::ENOENT 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 55
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 59
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 49
def increment(name, amount = 1, = nil) modify_value(name, amount, ) end