Move Cache into Util

This commit is contained in:
Thomas Reynolds 2012-04-14 14:06:49 -07:00
parent d2d40079cc
commit 8a1342df9c
3 changed files with 57 additions and 62 deletions

View file

@ -11,9 +11,6 @@ require "active_support/json"
# Simple callback library # Simple callback library
require "middleman-core/vendor/hooks-0.2.0/lib/hooks" require "middleman-core/vendor/hooks-0.2.0/lib/hooks"
# Using a cache
require "middleman-core/cache"
require "middleman-core/sitemap" require "middleman-core/sitemap"
# Core Middleman Class # Core Middleman Class
@ -309,9 +306,9 @@ module Middleman
# Shared cache instance # Shared cache instance
# #
# @private # @private
# @return [Middleman::Cache] The cache # @return [Middleman::Util::Cache] The cache
def self.cache def self.cache
@_cache ||= ::Middleman::Cache.new @_cache ||= ::Middleman::Util::Cache.new
end end
delegate :cache, :to => :"self.class" delegate :cache, :to => :"self.class"

View file

@ -1,57 +0,0 @@
module Middleman
# 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

View file

@ -31,5 +31,60 @@ module Middleman
def self.normalize_path(path) def self.normalize_path(path)
path.sub(/^\//, "").gsub("%20", " ") path.sub(/^\//, "").gsub("%20", " ")
end 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
end end