module Redmemo::Cache::InstanceMethods

start of instance methods

Public Instance Methods

cached_value_for(key, lazy_val) click to toggle source
# File lib/redmemo.rb, line 28
def cached_value_for(key, lazy_val)
  cached_val = $redis.get(key)
  return decode_for_cache(cached_val) if cached_val

  # cache miss: first execution
  lazy_val.().tap do |val|
    $redis.set(key, encode_for_cache(val))
  end
end
decode_for_cache(encoded_val) click to toggle source
# File lib/redmemo.rb, line 24
def decode_for_cache(encoded_val)
  Marshal.load(Base64.decode64(encoded_val))
end
encode_for_cache(val) click to toggle source
# File lib/redmemo.rb, line 20
def encode_for_cache(val)
  Base64.encode64(Marshal.dump(val))
end