Spec-Zone.ru › Ruby on Rails 8.1

класс ActiveSupport::Cache::FileStore

Родительский класс:
ActiveSupport::Cache::Store

Файловое хранилище кэша

Реализация хранилища кэша, в которой все данные сохраняются в файловой системе.

Константы

DIR_FORMATTER
FILENAME_MAX_SIZE
FILEPATH_MAX_SIZE
GITKEEP_FILES

Атрибуты

cache_path [R]

Публичные методы класса

new (cache_path, **options) Показать исходный код
# File activesupport/lib/active_support/cache/file_store.rb, line 20
def initialize(cache_path, **options)
  super(options)
  @cache_path = cache_path.to_s
end
Вызывает метод суперкласса ActiveSupport::Cache::Store::new
supports_cache_versioning? () Показать исходный код
# File activesupport/lib/active_support/cache/file_store.rb, line 26
def self.supports_cache_versioning?
  true
end

Объявляет о поддержке версионирования кэша.

Публичные методы экземпляра

cleanup (options = nil) Показать исходный код
# File activesupport/lib/active_support/cache/file_store.rb, line 40
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

Заранее перебирает все сохранённые ключи и удаляет те, срок действия которых истёк.

clear (options = nil) Показать исходный код
# File activesupport/lib/active_support/cache/file_store.rb, line 33
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

Удаляет все элементы из кэша. В данном случае удаляются все записи в указанном каталоге файлового хранилища, кроме .keep и .gitkeep. При использовании FileStore внимательно выбирайте каталог в файле конфигурации, поскольку всё его содержимое будет удалено.

decrement (name, amount = 1, **options) Показать исходный код
# File activesupport/lib/active_support/cache/file_store.rb, line 80
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

Уменьшает целочисленное значение в кэше. Возвращает обновлённое значение.

Если ключ не установлен, ему будет присвоено значение -amount.

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

Чтобы задать определённое значение, вызовите write:

cache.write("baz", 5)
cache.decrement("baz") # => 4
delete_matched (matcher, options = nil) Показать исходный код
# File activesupport/lib/active_support/cache/file_store.rb, line 89
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 (name, amount = 1, **options) Показать исходный код
# File activesupport/lib/active_support/cache/file_store.rb, line 60
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

Увеличивает целочисленное значение в кэше. Возвращает обновлённое значение.

Если ключ не установлен, отсчёт начинается с 0:

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

Чтобы задать определённое значение, вызовите write:

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

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API