# File lib/moneta/adapters/activerecord.rb, line 125 def increment(key, amount = 1, options = {}) @table.connection_pool.with_connection do @table.transaction do if record = @table.where(:k => key).lock.first value = Utils.to_int(record.v) + amount record.v = value.to_s record.save value elsif create(key, amount.to_s, options) amount else raise 'Concurrent modification' end end end rescue tries ||= 0 (tries += 1) < 10 ? retry : raise end