module Blockhole
Constants
- VERSION
Attributes
storage[RW]
Public Class Methods
collapse(name)
click to toggle source
# File lib/blockhole.rb, line 38 def collapse(name) storage.del name end
configure() { |self| ... }
click to toggle source
# File lib/blockhole.rb, line 9 def configure yield self self end
get(name)
click to toggle source
# File lib/blockhole.rb, line 29 def get(name) value = storage.get(name) begin return MultiJson.load value rescue MultiJson::DecodeError return value end end
use_hole(hole_name, lifespan = nil, &block)
click to toggle source
# File lib/blockhole.rb, line 14 def use_hole(hole_name, lifespan = nil, &block) if lifespan and lifespan < 1 raise ArgumentError, "lifespan (if provided) must be >= 0, got #{lifespan}" end unless value = storage.get(hole_name) value = block.call(hole_name) storage.set(hole_name, encode(value)) storage.expire(hole_name, lifespan) if lifespan end value end
Private Class Methods
encode(value)
click to toggle source
# File lib/blockhole.rb, line 44 def encode(value) return value if value.kind_of? String MultiJson.dump value end