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
[]=(i, value)
Alias for: insert
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