class ActiveSupport::Cache::MemoryStore
def write_entry(key, entry, options) # :nodoc:
def write_entry(key, entry, options) # :nodoc: entry.dup_value! synchronize do old_entry = @data[key] return false if @data.key?(key) && options[:unless_exist] if old_entry @cache_size -= (old_entry.size - entry.size) else @cache_size += cached_size(key, entry) end @key_access[key] = Time.now.to_f @data[key] = entry prune(@max_size * 0.75, @max_prune_time) if @cache_size > @max_size true end end