Sha256: 90a0d18154594864046a9a8389e45c1e534eb8049c8925effe73c7282eab7ec4
Contents?: true
Size: 1.17 KB
Versions: 1
Compression:
Stored size: 1.17 KB
Contents
module Blendris # RedisSet is a wrapper to the Redis SET data type. class RedisSet include RedisNode include Enumerable def initialize(key, options = {}) @key = key.to_s @options = options @on_change = options[:on_change] end def each redis.smembers(key).each do |value| yield value end self end def set(*values) self.clear values.flatten.compact.each do |v| redis.sadd key, v end self ensure notify_changed end def <<(value) [ value ].flatten.compact.each do |v| redis.sadd key, v end self ensure notify_changed end def get self end def delete(value) redis.srem key, value ensure notify_changed end # Set this set's members to the intersection of this set and the given set. def intersect!(other) redis.sinterstore key, key, other.key ensure notify_changed end # Set this set's members to the union of this set and the given set. def union!(other) redis.sunionstore key, key, other.key ensure notify_changed end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
blendris-0.5 | lib/blendris/set.rb |