Class: Kredis::Types::Set

Inherits:
Proxying show all
Includes:
DefaultValues
Defined in:
lib/kredis/types/set.rb

Instance Attribute Summary collapse

Attributes inherited from Proxying

#key, #proxy

Instance Method Summary collapse

Methods included from DefaultValues

#initialize

Methods inherited from Proxying

#failsafe, #initialize, proxying, #unproxied_redis

Instance Attribute Details

#typedObject

Returns the value of attribute typed.



8
9
10
# File 'lib/kredis/types/set.rb', line 8

def typed
  @typed
end

Instance Method Details

#add(*members) ⇒ Object Also known as: <<



18
19
20
# File 'lib/kredis/types/set.rb', line 18

def add(*members)
  sadd types_to_strings(members, typed) if members.flatten.any?
end

#clearObject



46
47
48
# File 'lib/kredis/types/set.rb', line 46

def clear
  del
end

#include?(member) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/kredis/types/set.rb', line 34

def include?(member)
  sismember type_to_string(member, typed)
end

#membersObject Also known as: to_a



13
14
15
# File 'lib/kredis/types/set.rb', line 13

def members
  strings_to_types(smembers || [], typed).sort
end

#move(set, member) ⇒ Object



9
10
11
12
# File 'lib/kredis/types/set.rb', line 9

def move(set, member)
  destination = set.respond_to?(:key) ? set.key : set
  smove(destination, member)
end

#remove(*members) ⇒ Object



23
24
25
# File 'lib/kredis/types/set.rb', line 23

def remove(*members)
  srem types_to_strings(members, typed) if members.flatten.any?
end

#replace(*members) ⇒ Object



27
28
29
30
31
32
# File 'lib/kredis/types/set.rb', line 27

def replace(*members)
  multi do
    del
    add members
  end
end

#sample(count = nil) ⇒ Object



50
51
52
53
54
55
56
# File 'lib/kredis/types/set.rb', line 50

def sample(count = nil)
  if count.nil?
    string_to_type(srandmember(count), typed)
  else
    strings_to_types(srandmember(count), typed)
  end
end

#sizeObject



38
39
40
# File 'lib/kredis/types/set.rb', line 38

def size
  scard.to_i
end

#takeObject



42
43
44
# File 'lib/kredis/types/set.rb', line 42

def take
  string_to_type(spop, typed)
end