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)