class Sprockets::Cache::MemoryStore
Public: Basic in memory LRU cache.
Assign the instance to the Sprockets::Base#cache.
environment.cache = Sprockets::Cache::MemoryStore.new(1000)
See Also
ActiveSupport::Cache::MemoryStore
Constants
- DEFAULT_MAX_SIZE
Internal: Default key limit for store.
Public Class Methods
new(max_size = DEFAULT_MAX_SIZE)
click to toggle source
Public: Initialize the cache store.
max_size - A Integer of the maximum number of keys the store will hold.
(default: 1000).
# File lib/sprockets/cache/memory_store.rb, line 21 def initialize(max_size = DEFAULT_MAX_SIZE) @max_size = max_size @cache = {} end
Public Instance Methods
get(key)
click to toggle source
Public: Retrieve value from cache.
This API should not be used directly, but via the Cache wrapper API.
key - String cache key.
Returns Object or nil or the value is not set.
# File lib/sprockets/cache/memory_store.rb, line 33 def get(key) exists = true value = @cache.delete(key) { exists = false } if exists @cache[key] = value else nil end end
inspect()
click to toggle source
Public: Pretty inspect
Returns String.
# File lib/sprockets/cache/memory_store.rb, line 61 def inspect "#<#{self.class} size=#{@cache.size}/#{@max_size}>" end
set(key, value)
click to toggle source
Public: Set a key and value in the cache.
This API should not be used directly, but via the Cache wrapper API.
key - String cache key. value - Object value.
Returns Object value.
# File lib/sprockets/cache/memory_store.rb, line 51 def set(key, value) @cache.delete(key) @cache[key] = value @cache.shift if @cache.size > @max_size value end