Sha256: bc7773b294856056d8d792a116862e12c92b46071449c04652d88bc23540abf4
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
module Lawnchair module StorageEngine class Abstract class << self attr_reader :data_store def data_store @data_store ||= {} end def fetch(key, options={}, &block) if self.db_connection? start_time = Time.now if exists?(key) value = get(key, options) log("HIT", key, Time.now-start_time) return value else value = block.call set(key, value, options) log("MISS", key, Time.now-start_time) return value end else block.call end end def get(key, options={}) if options[:raw] data_store[computed_key(key)] else exists?(key) ? Marshal.load(data_store[computed_key(key)]) : nil end end def computed_key(key) raise "Missing key" if key.nil? || key.empty? key.gsub!(" ","") if key.match(/\s/) prefix = "Lawnchair" "#{prefix}:#{key}" end def db_connection? true end def log(message, key, elapsed) ActionController::Base.logger.info("Lawnchair Cache: #{message} (%0.6f secs): #{key}" % elapsed) if defined? ::ActionController::Base end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lawnchair-0.6.5 | lib/storage_engine/abstract.rb |
lawnchair-0.6.4 | lib/storage_engine/abstract.rb |