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
516
517
518
|
# File 'lib/familia/redisobject.rb', line 516
def << v
add v
end
|
#add(*values) ⇒ Object
510
511
512
513
514
|
# File 'lib/familia/redisobject.rb', line 510
def add *values
values.flatten.compact.each { |v| redis.sadd rediskey, to_redis(v) }
update_expiration
self
end
|
#collect(&blk) ⇒ Object
540
541
542
|
# File 'lib/familia/redisobject.rb', line 540
def collect &blk
members.collect &blk
end
|
#collectraw(&blk) ⇒ Object
556
557
558
|
# File 'lib/familia/redisobject.rb', line 556
def collectraw &blk
membersraw.collect &blk
end
|
#delete(v) ⇒ Object
Also known as:
remove, rem, del
569
570
571
|
# File 'lib/familia/redisobject.rb', line 569
def delete v
redis.srem rediskey, to_redis(v)
end
|
#each(&blk) ⇒ Object
532
533
534
|
# File 'lib/familia/redisobject.rb', line 532
def each &blk
members.each &blk
end
|
#each_with_index(&blk) ⇒ Object
536
537
538
|
# File 'lib/familia/redisobject.rb', line 536
def each_with_index &blk
members.each_with_index &blk
end
|
#eachraw(&blk) ⇒ Object
548
549
550
|
# File 'lib/familia/redisobject.rb', line 548
def eachraw &blk
membersraw.each &blk
end
|
#eachraw_with_index(&blk) ⇒ Object
552
553
554
|
# File 'lib/familia/redisobject.rb', line 552
def eachraw_with_index &blk
membersraw.each_with_index &blk
end
|
#empty? ⇒ Boolean
506
507
508
|
# File 'lib/familia/redisobject.rb', line 506
def empty?
size == 0
end
|
#intersection(*setkeys) ⇒ Object
576
577
578
|
# File 'lib/familia/redisobject.rb', line 576
def intersection *setkeys
end
|
#member?(v) ⇒ Boolean
Also known as:
include?
564
565
566
|
# File 'lib/familia/redisobject.rb', line 564
def member? v
redis.sismember rediskey, to_redis(v)
end
|
#members ⇒ Object
Also known as:
all, to_a
520
521
522
523
524
|
# File 'lib/familia/redisobject.rb', line 520
def members
echo :members, caller[0] if Familia.debug
el = membersraw
multi_from_redis *el
end
|
#membersraw ⇒ Object
528
529
530
|
# File 'lib/familia/redisobject.rb', line 528
def membersraw
redis.smembers(rediskey)
end
|
#move(dstkey, v) ⇒ Object
584
585
586
|
# File 'lib/familia/redisobject.rb', line 584
def move dstkey, v
redis.smove rediskey, dstkey, v
end
|
#pop ⇒ Object
580
581
582
|
# File 'lib/familia/redisobject.rb', line 580
def pop
redis.spop rediskey
end
|
#random ⇒ Object
588
589
590
|
# File 'lib/familia/redisobject.rb', line 588
def random
from_redis randomraw
end
|
#randomraw ⇒ Object
592
593
594
|
# File 'lib/familia/redisobject.rb', line 592
def randomraw
redis.srandmember(rediskey)
end
|
#select(&blk) ⇒ Object
544
545
546
|
# File 'lib/familia/redisobject.rb', line 544
def select &blk
members.select &blk
end
|
#selectraw(&blk) ⇒ Object
560
561
562
|
# File 'lib/familia/redisobject.rb', line 560
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
501
502
503
|
# File 'lib/familia/redisobject.rb', line 501
def size
redis.scard rediskey
end
|