Class: Familia::Set
Instance Attribute Summary
Attributes inherited from RedisObject
#cache, #name, #parent, #redis
Instance Method Summary
collapse
Methods inherited from RedisObject
#class?, #clear_cache, #db, #dump_method, #echo, #exists?, #expire, #expireat, #from_redis, inherited, #initialize, #load_method, #multi_from_redis, #parent?, #persist, #qstamp, #realttl, #rediskey, register, registration, #rename, #renamenx, #to_redis, #ttl, #type, #update_expiration
Instance Method Details
#<<(v) ⇒ Object
518
519
520
|
# File 'lib/familia/redisobject.rb', line 518
def << v
add v
end
|
#add(*values) ⇒ Object
512
513
514
515
516
|
# File 'lib/familia/redisobject.rb', line 512
def add *values
values.flatten.compact.each { |v| redis.sadd? rediskey, to_redis(v) }
update_expiration
self
end
|
#collect(&blk) ⇒ Object
542
543
544
|
# File 'lib/familia/redisobject.rb', line 542
def collect &blk
members.collect &blk
end
|
#collectraw(&blk) ⇒ Object
558
559
560
|
# File 'lib/familia/redisobject.rb', line 558
def collectraw &blk
membersraw.collect &blk
end
|
#delete(v) ⇒ Object
Also known as:
remove, rem, del
571
572
573
|
# File 'lib/familia/redisobject.rb', line 571
def delete v
redis.srem rediskey, to_redis(v)
end
|
#each(&blk) ⇒ Object
534
535
536
|
# File 'lib/familia/redisobject.rb', line 534
def each &blk
members.each &blk
end
|
#each_with_index(&blk) ⇒ Object
538
539
540
|
# File 'lib/familia/redisobject.rb', line 538
def each_with_index &blk
members.each_with_index &blk
end
|
#eachraw(&blk) ⇒ Object
550
551
552
|
# File 'lib/familia/redisobject.rb', line 550
def eachraw &blk
membersraw.each &blk
end
|
#eachraw_with_index(&blk) ⇒ Object
554
555
556
|
# File 'lib/familia/redisobject.rb', line 554
def eachraw_with_index &blk
membersraw.each_with_index &blk
end
|
#empty? ⇒ Boolean
508
509
510
|
# File 'lib/familia/redisobject.rb', line 508
def empty?
size == 0
end
|
#intersection(*setkeys) ⇒ Object
578
579
580
|
# File 'lib/familia/redisobject.rb', line 578
def intersection *setkeys
end
|
#member?(v) ⇒ Boolean
Also known as:
include?
566
567
568
|
# File 'lib/familia/redisobject.rb', line 566
def member? v
redis.sismember rediskey, to_redis(v)
end
|
#members ⇒ Object
Also known as:
all, to_a
522
523
524
525
526
|
# File 'lib/familia/redisobject.rb', line 522
def members
echo :members, caller[0] if Familia.debug
el = membersraw
multi_from_redis *el
end
|
#membersraw ⇒ Object
530
531
532
|
# File 'lib/familia/redisobject.rb', line 530
def membersraw
redis.smembers(rediskey)
end
|
#move(dstkey, v) ⇒ Object
586
587
588
|
# File 'lib/familia/redisobject.rb', line 586
def move dstkey, v
redis.smove rediskey, dstkey, v
end
|
#pop ⇒ Object
582
583
584
|
# File 'lib/familia/redisobject.rb', line 582
def pop
redis.spop rediskey
end
|
#random ⇒ Object
590
591
592
|
# File 'lib/familia/redisobject.rb', line 590
def random
from_redis randomraw
end
|
#randomraw ⇒ Object
594
595
596
|
# File 'lib/familia/redisobject.rb', line 594
def randomraw
redis.srandmember(rediskey)
end
|
#select(&blk) ⇒ Object
546
547
548
|
# File 'lib/familia/redisobject.rb', line 546
def select &blk
members.select &blk
end
|
#selectraw(&blk) ⇒ Object
562
563
564
|
# File 'lib/familia/redisobject.rb', line 562
def selectraw &blk
membersraw.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
#size ⇒ Object
Also known as:
length
503
504
505
|
# File 'lib/familia/redisobject.rb', line 503
def size
redis.scard rediskey
end
|