lib/redix/logic.rb in redix-0.0.3 vs lib/redix/logic.rb in redix-0.0.4
- old
+ new
@@ -1,10 +1,10 @@
module Redix
- class Logic #< Qt::Widget =/
- #slots :reload, :help, :connect
+ class Logic < Qt::Object # =/
+ slots :reload, :help, :connect
class << self
def r(db = 0)
@r ||= Redis.new(:db => db)
@@ -22,10 +22,11 @@
end
def failure(f)
@u.statusbar.showMessage(f)
end
+ alias :message :failure
def build_dbs
0.upto(15) do |i|
a = Qt::Action.new(@u.mainWindow)
a.connect(SIGNAL('triggered()')) { reconnect(@db = i) }
@@ -34,15 +35,17 @@
a.text = Qt::Application.translate("MainWindow", "##{i}", nil, Qt::Application::UnicodeUTF8)
end
end
def build_keys
+ all = r.keys.sort
@u.listWidget.clear
- @u.listWidget.addItems(r.keys.sort)
- rescue
+ @u.listWidget.addItems(all)
+ puts r.info
+ message "DB Loaded #{all.size} keys. Used memory #{r.info['used_memory_human']}"
+ rescue
failure "Could not conect to redis"
-
end
def connect
c = ConnectDialog.new
c.setupUi
@@ -55,20 +58,36 @@
def help
a = AboutDialog.new
a.setupUi
# a.title.setText("RediX")
- a.textBrowser.setHtml("About <a href='http://github.com/nofxx/redix'>Redix</a>....")
+ a.textBrowser.setHtml("About <a href='http://github.com/nofxx/redix'>Redix</a><p>Marcos Piccinini</p>")
a.show
end
def new_key
k = NewKeyDialog.new
k.setupUi
+ k.buttonBox.connect(SIGNAL('accepted()')) { create_key(k) }
k.show
end
+ def create_key(k, type = nil, v = nil)
+
+ unless type
+ type = k.input_type.current_text
+ v = k.input_value.text
+ k = k.input_name.text
+ end
+ case type
+ when 'string' then r.set(k, v)
+ when 'hash' then r.hmset(k, v)
+ when 'list' then r.add(k, v)
+ when 'set' then r.sadd(k, v)
+ end
+ end
+
def for(u)
@u = u
build_keys
build_dbs
u.actionNew.connect(SIGNAL('triggered()')) { new_key }
@@ -151,27 +170,24 @@
else Qt::Variant.new
end
end
def setData(mid, var, *args)
- p "SETDATA #{mid} | #{var}"
- p mid
r = Logic.r
- t = var.toString
+ v = var.toString
case @type
- when 'string' then r.set(@key, t)
- when 'hash' then r.hset(@key, @header[mid.row], t)
- when 'list' then r.lset(@key, mid.row, t)
+ when 'string' then r.set(@key, v)
+ when 'hash' then r.hset(@key, @header[mid.row], v)
+ when 'list' then r.lset(@key, mid.row, v)
when 'set'
r.srem(@key, @rows[mid.row])
- r.sadd(@key, t)
+ r.sadd(@key, v)
end
- p args
self.for(@key)
end
def setHeaderData(*args)
- p args
+ p "Set Header -> #{args}"
end
def headerData sec, orient, role = Qt::DisplayRole
if role == Qt::DisplayRole
Qt::Variant.new(orient == 2 ? @header[sec] : @type)