Move Cache into Util
This commit is contained in:
parent
d2d40079cc
commit
8a1342df9c
3 changed files with 57 additions and 62 deletions
|
@ -31,5 +31,60 @@ module Middleman
|
|||
def self.normalize_path(path)
|
||||
path.sub(/^\//, "").gsub("%20", " ")
|
||||
end
|
||||
|
||||
# Simple shared cache implementation
|
||||
class Cache
|
||||
# Initialize
|
||||
def initialize
|
||||
self.clear
|
||||
end
|
||||
|
||||
# Either get the cached key or save the contents of the block
|
||||
#
|
||||
# @param Anything Hash can use as a key
|
||||
# @return Cached value
|
||||
def fetch(*key)
|
||||
@cache[key] ||= yield
|
||||
end
|
||||
|
||||
# Whether the key is in the cache
|
||||
#
|
||||
# @param Anything Hash can use as a key
|
||||
# @return [Boolean]
|
||||
def has_key?(key)
|
||||
@cache.has_key?(key)
|
||||
end
|
||||
|
||||
# Get a specific key
|
||||
#
|
||||
# @param Anything Hash can use as a key
|
||||
# @return Cached value
|
||||
def get(key)
|
||||
@cache[key]
|
||||
end
|
||||
|
||||
def keys
|
||||
@cache.keys
|
||||
end
|
||||
|
||||
# Clear the entire cache
|
||||
def clear
|
||||
@cache = {}
|
||||
end
|
||||
|
||||
# Set a specific key
|
||||
#
|
||||
# @param Anything Hash can use as a key
|
||||
# @param Cached value
|
||||
def set(key, value)
|
||||
@cache[key] = value
|
||||
end
|
||||
|
||||
# Remove a specific key
|
||||
# @param Anything Hash can use as a key
|
||||
def remove(*key)
|
||||
@cache.delete(key)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue