Base
# File lib/memcache/pg_server.rb, line 84 def add(key, value, expiry = 0) delete_expired(key) insert(key, value, expiry) value rescue PGError => e nil end
# File lib/memcache/pg_server.rb, line 98 def append(key, value) delete_expired(key) result = db.exec %{ UPDATE #{table} SET value = value || #{quote(value)}, updated_at = NOW() WHERE key = #{quote(key)} AND #{prefix_clause} } result.cmdtuples == 1 end
# File lib/memcache/pg_server.rb, line 64 def decr(key, amount = 1) incr(key, -amount) end
# File lib/memcache/pg_server.rb, line 68 def delete(key) result = db.exec %{ DELETE FROM #{table} WHERE key = #{quote(key)} AND #{prefix_clause} } result.cmdtuples == 1 end
# File lib/memcache/pg_server.rb, line 27 def flush_all(delay = nil) db.exec("TRUNCATE #{table}") end
# File lib/memcache/pg_server.rb, line 31 def get(keys) return get([keys])[keys.to_s] unless keys.kind_of?(Array) return {} if keys.empty? keys = keys.collect {|key| quote(key.to_s)}.join(',') sql = %{ SELECT key, value FROM #{table} WHERE key IN (#{keys}) AND #{prefix_clause} AND #{expiry_clause} } results = {} db.query(sql).each do |row| results[row['key']] = row['value'] end results end
# File lib/memcache/pg_server.rb, line 48 def incr(key, amount = 1) transaction do value = get(key) return unless value return unless value =~ /^\d+$/ value = value.to_i + amount value = 0 if value < 0 db.exec %{ UPDATE #{table} SET value = #{quote(value)}, updated_at = NOW() WHERE key = #{quote(key)} AND #{prefix_clause} } value end end
# File lib/memcache/pg_server.rb, line 20 def name @name ||= begin db_config = db.instance_variable_get(:@config) "#{db_config[:host]}:#{db_config[:database]}:#{table}" end end
# File lib/memcache/pg_server.rb, line 108 def prepend(key, value) delete_expired(key) result = db.exec %{ UPDATE #{table} SET value = #{quote(value)} || value, updated_at = NOW() WHERE key = #{quote(key)} AND #{prefix_clause} } result.cmdtuples == 1 end
Generated with the Darkfish Rdoc Generator 2.