class Regres::Table
Public Class Methods
new(connection, name)
click to toggle source
# File lib/regres/table.rb, line 3 def initialize(connection, name) @connection = connection @name = name[/^[\w\_\-]+/] create unless exists? end
Public Instance Methods
create()
click to toggle source
# File lib/regres/table.rb, line 10 def create @connection.query(%{ CREATE TABLE #{@name} (k varchar(255) primary key, v text, unique (k)) }) end
del(k)
click to toggle source
# File lib/regres/table.rb, line 39 def del(k) @connection.query(%{DELETE FROM #{@name} WHERE k = $1}, [k]) true end
exists?()
click to toggle source
# File lib/regres/table.rb, line 16 def exists? res = @connection.query(%{SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = $1)}, [@name]) res.first == {"exists" => "t"} end
get(k)
click to toggle source
# File lib/regres/table.rb, line 31 def get(k) res = @connection.query(%{ SELECT v FROM #{@name} WHERE k = $1 }, [k]).first res && res['v'] end
set(k, v)
click to toggle source
# File lib/regres/table.rb, line 22 def set(k, v) @connection.query(%{ INSERT INTO #{@name} (k, v) VALUES ($1, $2) ON CONFLICT (k) DO UPDATE SET v = $2 WHERE #{@name}.k = $1 }, [k, v]) v end