ActiveSupport::Cache::FileStore (original) (raw)

File Cache Store

A cache store implementation which stores everything on the filesystem.

Methods

C

D

I

N

S

Constants

DIR_FORMATTER = "%03X"
FILENAME_MAX_SIZE = 226
FILEPATH_MAX_SIZE = 900
GITKEEP_FILES = [".gitkeep", ".keep"].freeze

Attributes

Class Public methods

Source: show | on GitHub

def initialize(cache_path, **options) super(options) @cache_path = cache_path.to_s end

Advertise cache versioning support.

Source: show | on GitHub

def self.supports_cache_versioning? true end

Instance Public methods

Preemptively iterates through all stored keys and removes the ones which have expired.

Source: show | on GitHub

def cleanup(options = nil) options = merged_options(options) search_dir(cache_path) do |fname| entry = read_entry(fname, **options) delete_entry(fname, **options) if entry && entry.expired? end end

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.

Source: show | on GitHub

def clear(options = 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 a cached integer value. Returns the updated value.

If the key is unset, it will be set to -amount.

cache.decrement("foo") # => -1

To set a specific value, call write:

cache.write("baz", 5)
cache.decrement("baz") # => 4

Source: show | on GitHub

def decrement(name, amount = 1, **options) options = merged_options(options) key = normalize_key(name, options)

instrument(:decrement, key, amount: amount) do modify_value(name, -amount, options) end end

Source: show | on GitHub

def delete_matched(matcher, options = nil) options = merged_options(options) matcher = key_matcher(matcher, options)

instrument(:delete_matched, matcher.inspect) do search_dir(cache_path) do |path| key = file_path_key(path) delete_entry(path, **options) if key.match(matcher) end end end

Increment a cached integer value. Returns the updated value.

If the key is unset, it starts from 0:

cache.increment("foo") # => 1
cache.increment("bar", 100) # => 100

To set a specific value, call write:

cache.write("baz", 5)
cache.increment("baz") # => 6

Source: show | on GitHub

def increment(name, amount = 1, **options) options = merged_options(options) key = normalize_key(name, options)

instrument(:increment, key, amount: amount) do modify_value(name, amount, options) end end