class Cacchern::Set

Attributes

key[R]

Public Class Methods

contain_class(klass) click to toggle source
# File lib/cacchern/set.rb, line 10
def contain_class(klass)
  @value_class = klass
end
new(key) click to toggle source
# File lib/cacchern/set.rb, line 19
def initialize(key)
  @key = "#{self.class.name.underscore}:#{key}"
end
value_class() click to toggle source
# File lib/cacchern/set.rb, line 14
def value_class
  @value_class || Member
end

Public Instance Methods

add(value) click to toggle source
# File lib/cacchern/set.rb, line 28
def add(value)
  return false unless value.instance_of?(self.class.value_class)

  if value.valid?
    Redis.current.sadd @key, value.value
    true
  else
    false
  end
end
all() click to toggle source
# File lib/cacchern/set.rb, line 23
def all
  values = Redis.current.smembers @key
  values.map { |value| self.class.value_class.new(value) }
end
remove(value) click to toggle source
# File lib/cacchern/set.rb, line 39
def remove(value)
  Redis.current.srem @key, value.value
end
remove_all() click to toggle source
# File lib/cacchern/set.rb, line 43
def remove_all
  Redis.current.del @key
end