class TieredCaching::SerializingStore
Public Class Methods
new(internal_store)
click to toggle source
# File lib/tiered_caching/serializing_store.rb, line 4 def initialize(internal_store) @internal_store = internal_store end
Public Instance Methods
clear()
click to toggle source
# File lib/tiered_caching/serializing_store.rb, line 27 def clear @internal_store.clear end
delete(key)
click to toggle source
# File lib/tiered_caching/serializing_store.rb, line 22 def delete(key) serialized_key = serialized_key(key) @internal_store.delete(serialized_key) end
get(key)
click to toggle source
# File lib/tiered_caching/serializing_store.rb, line 12 def get(key) serialized_key = serialized_key(key) serialized_value = @internal_store.get(serialized_key) deserialized_value(serialized_value) end
getset(key, &block)
click to toggle source
# File lib/tiered_caching/serializing_store.rb, line 18 def getset(key, &block) deserialized_value(serialized_getset(key, &block)) end
set(key, value)
click to toggle source
# File lib/tiered_caching/serializing_store.rb, line 8 def set(key, value) @internal_store.set(serialized_key(key), serialized_value(value)) end
Private Instance Methods
deserialized_value(serialized_value)
click to toggle source
# File lib/tiered_caching/serializing_store.rb, line 45 def deserialized_value(serialized_value) Marshal.load(serialized_value) if serialized_value end
serialized_getset(key) { || ... }
click to toggle source
# File lib/tiered_caching/serializing_store.rb, line 33 def serialized_getset(key, &block) @internal_store.getset(serialized_key(key)) { serialized_value(yield) } end
serialized_key(key)
click to toggle source
# File lib/tiered_caching/serializing_store.rb, line 37 def serialized_key(key) Digest::MD5.hexdigest(Marshal.dump(key)) end
serialized_value(value)
click to toggle source
# File lib/tiered_caching/serializing_store.rb, line 41 def serialized_value(value) Marshal.dump(value) end