Class: Sprockets::Cache::MemoryStore
- Inherits:
-
Object
- Object
- Sprockets::Cache::MemoryStore
- Defined in:
- lib/sprockets/cache/memory_store.rb
Overview
Constant Summary collapse
- DEFAULT_MAX_SIZE =
Internal: Default key limit for store.
1000
Instance Method Summary collapse
-
#get(key) ⇒ Object
Public: Retrieve value from cache.
-
#initialize(max_size = DEFAULT_MAX_SIZE) ⇒ MemoryStore
constructor
Public: Initialize the cache store.
-
#inspect ⇒ Object
Public: Pretty inspect.
-
#set(key, value) ⇒ Object
Public: Set a key and value in the cache.
Constructor Details
#initialize(max_size = DEFAULT_MAX_SIZE) ⇒ MemoryStore
Public: Initialize the cache store.
max_size - A Integer of the maximum number of keys the store will hold.
(default: 1000).
21 22 23 24 |
# File 'lib/sprockets/cache/memory_store.rb', line 21 def initialize(max_size = DEFAULT_MAX_SIZE) @max_size = max_size @cache = {} end |
Instance Method Details
#get(key) ⇒ Object
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.
33 34 35 36 37 38 39 40 41 |
# 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 ⇒ Object
Public: Pretty inspect
Returns String.
61 62 63 |
# File 'lib/sprockets/cache/memory_store.rb', line 61 def inspect "#<#{self.class} size=#{@cache.size}/#{@max_size}>" end |
#set(key, value) ⇒ Object
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.
51 52 53 54 55 56 |
# 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 |