Sha256: d5bffaf1b8594cc579c33fb70934a1a2fe7e72c61b4d3be40540b489eb4204aa
Contents?: true
Size: 1.31 KB
Versions: 2
Compression:
Stored size: 1.31 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) 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 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.8 | lib/storage_engine/abstract.rb |
lawnchair-0.6.7 | lib/storage_engine/abstract.rb |