Class: BluntCache
- Inherits:
-
Object
- Object
- BluntCache
- Defined in:
- lib/blunt-cache.rb,
lib/blunt-cache/version.rb
Overview
In-memory cache service.
Constant Summary collapse
- VERSION =
"0.1.2"
Class Method Summary collapse
- .data ⇒ Object
- .expire_default ⇒ Object
-
.fetch(key, options = {}, &block) ⇒ Object
Get
keyfrom cache. -
.flush ⇒ Object
Clear cache.
-
.get(key) ⇒ Object
Get
keyfrom cache. -
.set(key, data, options = {}, *args) ⇒ Object
Store
datain cache bykeyfor:expireseconds (default is 60 sec) def self.set(key, data, expire: nil). - .timestamp ⇒ Object
Class Method Details
.data ⇒ Object
39 40 41 |
# File 'lib/blunt-cache.rb', line 39 def self.data @data||= {} end |
.expire_default ⇒ Object
47 48 49 |
# File 'lib/blunt-cache.rb', line 47 def self.expire_default @expire_default||=60 end |
.fetch(key, options = {}, &block) ⇒ Object
Get key from cache. Executes block, stores it’s result and returns it if not set or expired.
def self.fetch(key, expire: nil, &block)
21 22 23 24 25 26 27 28 29 |
# File 'lib/blunt-cache.rb', line 21 def self.fetch(key, = {}, &block) expire = [:expire] result = self.get key if result.nil? self.set key, block.call, :expire => expire else result end end |
.flush ⇒ Object
Clear cache
32 33 34 35 |
# File 'lib/blunt-cache.rb', line 32 def self.flush @data = {} = {} end |
.get(key) ⇒ Object
Get key from cache. Returns nil if not set or expired.
15 16 17 |
# File 'lib/blunt-cache.rb', line 15 def self.get(key) self.[key].is_a?(Time) && Time.now < self.[key] ? self.data[key] : nil end |
.set(key, data, options = {}, *args) ⇒ Object
Store data in cache by key for :expire seconds (default is 60 sec)
def self.set(key, data, expire: nil)
7 8 9 10 11 12 |
# File 'lib/blunt-cache.rb', line 7 def self.set(key, data, = {}, *args) expire = [:expire] self.[key] = Time.now + (expire || self.expire_default) self.data[key] = data data end |
.timestamp ⇒ Object
43 44 45 |
# File 'lib/blunt-cache.rb', line 43 def self. ||= {} end |