class Redisabel::KeyArray
Public Class Methods
data_type()
click to toggle source
# File lib/redisabel/key_array.rb, line 5 def self.data_type return Array end
Public Instance Methods
[](i)
click to toggle source
# File lib/redisabel/key_array.rb, line 9 def [](i) return @data[i] end
delete(value)
click to toggle source
# File lib/redisabel/key_array.rb, line 13 def delete(value) if @data.delete(value) && self.autosave? && !self.id.to_s.empty? Database.db.lrem(self.database_key, 0, value) end end
delete_at(i)
click to toggle source
# File lib/redisabel/key_array.rb, line 19 def delete_at(i) if @data.delete_at(i) && self.autosave? && !self.id.to_s.empty? tmp_value = Time.now.to_s self.insert(i, tmp_value) Database.db.lrem(self.database_key, 0, tmp_value) end end
insert(i, value)
click to toggle source
# File lib/redisabel/key_array.rb, line 27 def insert(i, value) params = i.nil? ? [value] : [i, value] amethod, lmethod = i.nil? ? [:push, :rpush] : [:insert, :lset] @data.send(amethod, *params) if self.autosave? && !self.id.to_s.empty? Database.db.send(lmethod, self.database_key, *params) end end
Also aliased as: []=
push(*values)
click to toggle source
# File lib/redisabel/key_array.rb, line 37 def push(*values) values = values.shift if values.first.is_a?(Array) values.each{ |v| self.insert(nil, v) } end
save()
click to toggle source
Calls superclass method
# File lib/redisabel/key_array.rb, line 42 def save return super do |key| Database.db.del(key) results = @data.map{ |v| Database.db.rpush(key, v.to_s) } next results.all? end end
to_a()
click to toggle source
# File lib/redisabel/key_array.rb, line 54 def to_a return @data.dup end
to_ary()
click to toggle source
# File lib/redisabel/key_array.rb, line 50 def to_ary return @data end