module Memflash::CachingLayer

Public Instance Methods

[](key) click to toggle source
Calls superclass method
# File lib/memflash.rb, line 19
def [](key)
  value_in_hash = super
  if memflashed?(key, value_in_hash)
    Rails.cache.read(value_in_hash)
  else
    value_in_hash
  end
end
[]=(key, value) click to toggle source
Calls superclass method
# File lib/memflash.rb, line 8
def []=(key, value)
  value_for_hash = value

  if value.kind_of?(String) && value.length >= Memflash.threshold
    value_for_hash = memflash_key(key)
    Rails.cache.write(value_for_hash, value)
  end

  super(key, value_for_hash)
end

Private Instance Methods

memflash_key(hash_key) click to toggle source
# File lib/memflash.rb, line 30
def memflash_key(hash_key)
  "Memflash-#{hash_key}-#{Time.now.to_f}-#{Kernel.rand}"
end
memflashed?(key, value) click to toggle source
# File lib/memflash.rb, line 34
def memflashed?(key, value)
  /^Memflash-#{key}/.match?(value.to_s)
end