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
File Cache Store
A cache store implementation which stores everything on the filesystem.
Constant Summary
-
DIR_FORMATTER =
# File 'activesupport/lib/active_support/cache/file_store.rb', line 15"%03X" -
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, 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 17
max is 1024, plus some room
900 -
GITKEEP_FILES =
# File 'activesupport/lib/active_support/cache/file_store.rb', line 18[".gitkeep", ".keep"].freeze
Store - Inherited
DEFAULT_POOL_OPTIONS
Class Attribute Summary
-
.supports_cache_versioning? ⇒ Boolean
readonly
Advertise cache versioning support.
Store - Inherited
Class Method Summary
Instance Attribute Summary
- #cache_path readonly
Store - Inherited
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)
Decrement a cached integer value.
- #delete_matched(matcher, options = nil)
-
#increment(name, amount = 1, options = nil)
Increment a cached integer value.
Store - Inherited
| #cleanup | Cleans up 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 |
|
Constructor Details
.new(cache_path, **options) ⇒ FileStore
# File 'activesupport/lib/active_support/cache/file_store.rb', line 20
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 26
def self.supports_cache_versioning? true 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 40
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 33
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)
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
# File 'activesupport/lib/active_support/cache/file_store.rb', line 75
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 79
def delete_matched(matcher, = nil) = () matcher = key_matcher(matcher, ) instrument(:delete_matched, matcher.inspect) do 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)
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
# File 'activesupport/lib/active_support/cache/file_store.rb', line 60
def increment(name, amount = 1, = nil) modify_value(name, amount, ) end