Class: Familia::Set
Instance Attribute Summary
Attributes inherited from RedisObject
#name, #parent, #redis
Instance Method Summary
collapse
Methods inherited from RedisObject
#db, #dump_method, #exists?, #expire, #expireat, #from_redis, inherited, #initialize, #load_method, #parent?, #realttl, #rediskey, register, registration, #to_redis, #ttl, #type, #update_expiration
Instance Method Details
#<<(v) ⇒ Object
387
388
389
|
# File 'lib/familia/redisobject.rb', line 387
def << v
add v
end
|
#add(*values) ⇒ Object
382
383
384
385
|
# File 'lib/familia/redisobject.rb', line 382
def add *values
values.flatten.compact.each { |v| redis.sadd rediskey, to_redis(v) }
self
end
|
#collect(&blk) ⇒ Object
407
408
409
|
# File 'lib/familia/redisobject.rb', line 407
def collect &blk
members.collect &blk
end
|
#delete(v) ⇒ Object
Also known as:
rem, del
420
421
422
|
# File 'lib/familia/redisobject.rb', line 420
def delete v
redis.srem rediskey, to_redis(v)
end
|
#each(&blk) ⇒ Object
399
400
401
|
# File 'lib/familia/redisobject.rb', line 399
def each &blk
members.each &blk
end
|
#each_with_index(&blk) ⇒ Object
403
404
405
|
# File 'lib/familia/redisobject.rb', line 403
def each_with_index &blk
members.each_with_index &blk
end
|
#empty? ⇒ Boolean
378
379
380
|
# File 'lib/familia/redisobject.rb', line 378
def empty?
size == 0
end
|
#intersection(*setkeys) ⇒ Object
426
427
428
|
# File 'lib/familia/redisobject.rb', line 426
def intersection *setkeys
end
|
#member?(v) ⇒ Boolean
Also known as:
include?
415
416
417
|
# File 'lib/familia/redisobject.rb', line 415
def member? v
redis.sismember rediskey, to_redis(v)
end
|
#members ⇒ Object
Also known as:
all, to_a
391
392
393
394
395
|
# File 'lib/familia/redisobject.rb', line 391
def members
redis.smembers(rediskey).collect do |v|
from_redis v
end
end
|
#move(dstkey, v) ⇒ Object
434
435
436
|
# File 'lib/familia/redisobject.rb', line 434
def move dstkey, v
redis.smove rediskey, dstkey, v
end
|
#pop ⇒ Object
430
431
432
|
# File 'lib/familia/redisobject.rb', line 430
def pop
redis.spop rediskey
end
|
#random ⇒ Object
438
439
440
|
# File 'lib/familia/redisobject.rb', line 438
def random
from_redis redis.srandmember(rediskey)
end
|
#select(&blk) ⇒ Object
411
412
413
|
# File 'lib/familia/redisobject.rb', line 411
def select &blk
members.select &blk
end
|
#self ⇒ Object
Make the value stored at KEY identical to the given list define_method :“#RedisObject#name_sync” do |*latest|
latest = latest.flatten.compact
if latest.empty?
false
else
latest = latest.collect { |obj| obj.index } if klass === latest.first
current = send("#{name_plural}raw")
added = latest-current
removed = current-latest
added.each { |v| self.send("add_#{name_singular}", v) }
removed.each { |v| self.send("remove_#{name_singular}", v) }
true
end
end
463
|
# File 'lib/familia/redisobject.rb', line 463
Familia::RedisObject.register self, :set
|
#size ⇒ Object
Also known as:
length
373
374
375
|
# File 'lib/familia/redisobject.rb', line 373
def size
redis.scard rediskey
end
|