class Middleman::FragmentCaching::Cache

Cache management

Public Class Methods

create_store(kind, options = {}) click to toggle source

Creates a store @return [Moneta] store instance

# File lib/middleman/fragment_caching/cache.rb, line 22
def create_store(kind, options = {})
  Moneta.new(kind, options)
end
dir() click to toggle source
# File lib/middleman/fragment_caching/cache.rb, line 10
def dir
  @dir ||= File.expand_path('tmp/cache').tap do |path|
    FileUtils.mkdir_p(path)
  end
end
store() click to toggle source
# File lib/middleman/fragment_caching/cache.rb, line 16
def store
  @store ||= create_store(:File, dir: dir)
end

Public Instance Methods

clear!() click to toggle source
# File lib/middleman/fragment_caching/cache.rb, line 56
def clear!
  expires_keys.each do |key|
    store.delete key
  end

  stored_keys.clear
end
expires_keys() click to toggle source
# File lib/middleman/fragment_caching/cache.rb, line 52
def expires_keys
  store.keys - stored_keys.to_a
end
find_or_set(key, &block) click to toggle source
# File lib/middleman/fragment_caching/cache.rb, line 37
def find_or_set(key, &block)
  key = key.to_s

  if !key.empty? && store.key?(key)
    content = store[key]
  else
    content = block.call
    store[key] = content unless key.empty?
  end

  stored_keys << key unless key.empty?

  content
end
store() click to toggle source
# File lib/middleman/fragment_caching/cache.rb, line 29
def store
  self.class.store
end
stored_keys() click to toggle source
# File lib/middleman/fragment_caching/cache.rb, line 33
def stored_keys
  @stored_keys ||= Set.new
end