Class: Restruct::Set
- Inherits:
-
Structure
show all
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/restruct/set.rb
Instance Attribute Summary
Attributes inherited from Structure
#id, #redis
Instance Method Summary
collapse
Methods inherited from Structure
#==, #destroy, #dump, #initialize, #restore
Instance Method Details
#add(member) ⇒ Object
Also known as:
<<
14
15
16
17
|
# File 'lib/restruct/set.rb', line 14
def add(member)
_add member
self
end
|
#add?(member) ⇒ Boolean
20
21
22
|
# File 'lib/restruct/set.rb', line 20
def add?(member)
_add(member) == 0 ? nil : self
end
|
#clear ⇒ Object
54
55
56
57
|
# File 'lib/restruct/set.rb', line 54
def clear
destroy
self
end
|
#delete(member) ⇒ Object
29
30
31
32
|
# File 'lib/restruct/set.rb', line 29
def delete(member)
_delete member
self
end
|
#delete?(member) ⇒ Boolean
34
35
36
|
# File 'lib/restruct/set.rb', line 34
def delete?(member)
_delete(member) == 0 ? nil : self
end
|
#delete_if ⇒ Object
43
44
45
46
|
# File 'lib/restruct/set.rb', line 43
def delete_if
each { |e| delete e if yield e }
self
end
|
#disjoint?(set) ⇒ Boolean
95
96
97
|
# File 'lib/restruct/set.rb', line 95
def disjoint?(set)
(to_a & set.to_a).empty?
end
|
#each(&block) ⇒ Object
73
74
75
|
# File 'lib/restruct/set.rb', line 73
def each(&block)
to_a.each(&block)
end
|
#empty? ⇒ Boolean
65
66
67
|
# File 'lib/restruct/set.rb', line 65
def empty?
size == 0
end
|
#include?(member) ⇒ Boolean
69
70
71
|
# File 'lib/restruct/set.rb', line 69
def include?(member)
redis.call('SISMEMBER', id, serialize(member)) == 1
end
|
#intersect?(set) ⇒ Boolean
91
92
93
|
# File 'lib/restruct/set.rb', line 91
def intersect?(set)
!disjoint? set
end
|
#keep_if ⇒ Object
Also known as:
select!
48
49
50
51
|
# File 'lib/restruct/set.rb', line 48
def keep_if
each { |e| delete e unless yield e }
self
end
|
#merge(members) ⇒ Object
24
25
26
27
|
# File 'lib/restruct/set.rb', line 24
def merge(members)
_add *members
self
end
|
#size ⇒ Object
Also known as:
count, length
59
60
61
|
# File 'lib/restruct/set.rb', line 59
def size
redis.call 'SCARD', id
end
|
#subtract(members) ⇒ Object
38
39
40
41
|
# File 'lib/restruct/set.rb', line 38
def subtract(members)
_delete *members
self
end
|
#to_a ⇒ Object
77
78
79
|
# File 'lib/restruct/set.rb', line 77
def to_a
redis.call('SMEMBERS', id).map { |e| deserialize e }
end
|
#to_set ⇒ Object
Also known as:
to_primitive
81
82
83
|
# File 'lib/restruct/set.rb', line 81
def to_set
to_a.to_set
end
|