Class: Redix::DataModel

Inherits:
Qt::AbstractTableModel
  • Object
show all
Defined in:
lib/redix/logic.rb

Instance Method Summary collapse

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