Class: ActiveSupport::Cache::FileStore
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Store
|
|
|
Instance Chain:
self,
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 15"%03X" -
EXCLUDED_DIRS =
# File 'activesupport/lib/active_support/cache/file_store.rb', line 18['.', '..'].freeze
-
FILENAME_MAX_SIZE =
# File 'activesupport/lib/active_support/cache/file_store.rb', line 16
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 17
max is 1024, plus some room
900
Class Attribute Summary
Store - Inherited
| .instrument | :deprecated: |
| .instrument= | :deprecated: |
| .logger | |
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.
Store - Inherited
| #cleanup | Cleanup the cache by removing expired entries. |
| #clear | Clear the entire cache. |
| #decrement | Decrement an integer value in the cache. |
| #delete | Deletes an entry in the cache. |
| #delete_matched | Delete 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 | Increment an integer value in the cache. |
| #mute | Silence the logger within a block. |
| #read | Fetches data from the cache, using the given key. |
| #read_multi | Read multiple values at once from the cache. |
| #silence, | |
| #silence! | Silence the logger. |
| #write | Writes the value to the cache, with the key. |
Constructor Details
.new(cache_path, options = nil) ⇒ FileStore
# File 'activesupport/lib/active_support/cache/file_store.rb', line 20
def initialize(cache_path, = nil) super() @cache_path = cache_path.to_s extend Strategy::LocalCache end
Instance Attribute Details
#cache_path (readonly)
[ GitHub ]# File 'activesupport/lib/active_support/cache/file_store.rb', line 13
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 35
def cleanup( = nil) = () search_dir(cache_path) do |fname| key = file_path_key(fname) entry = read_entry(key, ) delete_entry(key, ) 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 .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 29
def clear( = nil) root_dirs = Dir.entries(cache_path).reject {|f| (EXCLUDED_DIRS + [".gitkeep"]).include?(f)} FileUtils.rm_r(root_dirs.collect{|f| File.join(cache_path, f)}) 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 52
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 56
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(key, ) 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 46
def increment(name, amount = 1, = nil) modify_value(name, amount, ) end