class ActiveSupport::Cache::FileStore

def modify_value(name, amount, options)

If the key is not found it is created and set to +amount+.
Modifies the amount of an integer value that is stored in the cache.
def modify_value(name, amount, options)
  file_name = normalize_key(name, options)
  lock_file(file_name) do
    options = merged_options(options)
    if num = read(name, options)
      num = num.to_i + amount
      write(name, num, options)
      num
    else
      write(name, Integer(amount), options)
      amount
    end
  end
end