123456789_123456789_123456789_123456789_123456789_

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

Class Attribute Summary

Store - Inherited

.instrument

:deprecated:

.instrument=

:deprecated:

.logger

Class Method Summary

Store - Inherited

.new

Create a new cache.

Instance Attribute Summary

Store - Inherited

Instance Method Summary

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 true if the cache contains an entry for the given key.

#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

[ GitHub ]

  
# File 'activesupport/lib/active_support/cache/file_store.rb', line 20

def initialize(cache_path, options = nil)
  super(options)
  @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.

[ GitHub ]

  
# File 'activesupport/lib/active_support/cache/file_store.rb', line 35

def cleanup(options = nil)
  options = merged_options(options)
  search_dir(cache_path) do |fname|
    key = file_path_key(fname)
    entry = read_entry(key, options)
    delete_entry(key, options) 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.

[ GitHub ]

  
# File 'activesupport/lib/active_support/cache/file_store.rb', line 29

def clear(options = 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.

[ GitHub ]

  
# File 'activesupport/lib/active_support/cache/file_store.rb', line 52

def decrement(name, amount = 1, options = nil)
  modify_value(name, -amount, options)
end

#delete_matched(matcher, options = nil)

[ GitHub ]

  
# File 'activesupport/lib/active_support/cache/file_store.rb', line 56

def delete_matched(matcher, options = nil)
  options = merged_options(options)
  instrument(:delete_matched, matcher.inspect) do
    matcher = key_matcher(matcher, options)
    search_dir(cache_path) do |path|
      key = file_path_key(path)
      delete_entry(key, options) 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.

[ GitHub ]

  
# File 'activesupport/lib/active_support/cache/file_store.rb', line 46

def increment(name, amount = 1, options = nil)
  modify_value(name, amount, options)
end