Class: Kredis::Types::Slots

Inherits:
Proxying show all
Defined in:
lib/kredis/types/slots.rb

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

Constructor Details

This class inherits a constructor from Kredis::Types::Proxying

Instance Attribute Details

#availableObject

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

Returns:

  • (Boolean)


36
37
38
39
40
# File 'lib/kredis/types/slots.rb', line 36

def available?
  failsafe returning: false do
    get.to_i < available
  end
end

#releaseObject



32
33
34
# File 'lib/kredis/types/slots.rb', line 32

def release
  decr
end

#reserveObject



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 incr <= available
        true
      else
        release
        false
      end
    end
  end
end

#resetObject



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

def reset
  del
end