Class: Redix::DataModel
- Inherits:
-
Qt::AbstractTableModel
- Object
- Qt::AbstractTableModel
- Redix::DataModel
- Defined in:
- lib/redix/logic.rb
Instance Method Summary collapse
- #columnCount(idx = nil) ⇒ Object
- #data(idx, role = Qt::DisplayRole) ⇒ Object
- #flags(arg = nil) ⇒ Object
- #for(key) ⇒ Object
- #headerData(sec, orient, role = Qt::DisplayRole) ⇒ Object
- #rowCount(idx = nil) ⇒ Object
- #setData(mid, var, *args) ⇒ Object
- #setHeaderData(*args) ⇒ Object
Instance Method Details
#columnCount(idx = nil) ⇒ Object
164 165 166 |
# File 'lib/redix/logic.rb', line 164 def columnCount idx=nil 1 end |
#data(idx, role = Qt::DisplayRole) ⇒ Object
168 169 170 171 172 |
# File 'lib/redix/logic.rb', line 168 def data idx, role = Qt::DisplayRole if role == Qt::DisplayRole then Qt::Variant.new @rows[idx.row] else Qt::Variant.new end end |
#flags(arg = nil) ⇒ Object
156 157 158 |
# File 'lib/redix/logic.rb', line 156 def flags(arg=nil) Qt::ItemIsEditable|Qt::ItemIsEnabled end |
#for(key) ⇒ Object
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'lib/redix/logic.rb', line 135 def for(key) r = Logic.r @key = key @type = r.type(key) @data = case @type when "string" then r.get(key) when "hash" then r.hgetall(key) when "set" then r.smembers(key) else r.sort(key) end if @data.kind_of?(Hash) @rows = @data.values @header = @data.keys else @rows = @data.kind_of?(Array) ? @data : [@data] @header = (0..@rows.size).to_a end self end |
#headerData(sec, orient, role = Qt::DisplayRole) ⇒ Object
192 193 194 195 196 197 |
# File 'lib/redix/logic.rb', line 192 def headerData sec, orient, role = Qt::DisplayRole if role == Qt::DisplayRole Qt::Variant.new(orient == 2 ? @header[sec] : @type) else Qt::Variant.new end end |
#rowCount(idx = nil) ⇒ Object
160 161 162 |
# File 'lib/redix/logic.rb', line 160 def rowCount idx=nil @rows.size end |
#setData(mid, var, *args) ⇒ Object
174 175 176 177 178 179 180 181 182 183 184 185 186 |
# File 'lib/redix/logic.rb', line 174 def setData(mid, var, *args) r = Logic.r v = var.toString case @type 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, v) end self.for(@key) end |
#setHeaderData(*args) ⇒ Object
188 189 190 |
# File 'lib/redix/logic.rb', line 188 def setHeaderData(*args) p "Set Header -> #{args}" end |