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