class ActiveSupport::Cache::MemoryStore

def write_entry(key, entry, options) # :nodoc:

: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