Class: Kredis::Types::Slots
Defined Under Namespace
Classes: NotAvailable
Instance Attribute Summary collapse
Attributes inherited from Proxying
#key, #proxy, #redis
Instance Method Summary
collapse
Methods inherited from Proxying
#failsafe, #initialize, proxying
Instance Attribute Details
#available ⇒ Object
Returns the value of attribute available.
6
7
8
|
# File 'lib/kredis/types/slots.rb', line 6
def available
@available
end
|
Instance Method Details
#available? ⇒ Boolean
41
42
43
44
45
|
# File 'lib/kredis/types/slots.rb', line 41
def available?
failsafe returning: false do
taken < available
end
end
|
#release ⇒ Object
32
33
34
35
36
37
38
39
|
# File 'lib/kredis/types/slots.rb', line 32
def release
if taken > 0
decr
true
else
false
end
end
|
#reserve ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/kredis/types/slots.rb', line 8
def reserve
failsafe returning: false do
if block_given?
begin
if reserve
yield
true
else
false
end
ensure
release
end
else
if available?
incr
true
else
false
end
end
end
end
|
#reset ⇒ Object
47
48
49
|
# File 'lib/kredis/types/slots.rb', line 47
def reset
del
end
|
#taken ⇒ Object
51
52
53
|
# File 'lib/kredis/types/slots.rb', line 51
def taken
get.to_i
end
|