class Keystore < ActiveRecord::Base validates_presence_of :key attr_accessible nil def self.get(key) Keystore.find_by_key(key) end def self.put(key, value) Keystore.connection.query([ "INSERT INTO #{Keystore.table_name} (" + "`key`, `value`) VALUES (?, ?) ON DUPLICATE KEY UPDATE `count` = ?", key, amount ]) true end def self.increment_value_for(key, amount = 1) self.incremented_value_for(key, amount) end def self.incremented_value_for(key, amount = 1) new_value = nil Keystore.connection.query([ "INSERT INTO #{Keystore.table_name} (" + "`key`, `value`) VALUES (?, ?) ON DUPLICATE KEY UPDATE `count` = " + "`count` + ?", key, amount, amount ]) return self.value_for(key) end def self.decrement_value_for(key, amount = -1) self.increment_value_for(key, amount) end def self.decremented_value_for(key, amount = -1) self.incremented_value_for(key, amount) end def self.value_for(key) self.get(key).try(:value) end end