Sha256: 11da720e662fb8ec3498caa0fd391e963a206ce6281e4913fbc59235ff7b6ecc

Contents?: true

Size: 1.06 KB

Versions: 8

Compression:

Stored size: 1.06 KB

Contents

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

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
middleman-core-3.0.0.beta.1 lib/middleman-core/cache.rb
middleman-core-3.0.0.alpha.9 lib/middleman-core/cache.rb
middleman-core-3.0.0.alpha.8 lib/middleman-core/cache.rb
middleman-core-3.0.0.alpha.7 lib/middleman-core/cache.rb
middleman-3.0.0.alpha.6 lib/middleman/cache.rb
middleman-3.0.0.alpha.5 lib/middleman/cache.rb
middleman-3.0.0.alpha.4 lib/middleman/cache.rb
middleman-3.0.0.alpha.3 lib/middleman/cache.rb