Sha256: 18b8b8efedf1aba5550578a5b2d128a9c1da93540e78dea939f8c81c2432004c
Contents?: true
Size: 802 Bytes
Versions: 3
Compression:
Stored size: 802 Bytes
Contents
# frozen_string_literal: true class Kredis::Types::Slots < Kredis::Types::Proxying class NotAvailable < StandardError; end proxying :incr, :decr, :get, :del, :exists? attr_accessor :available 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 def release if taken > 0 decr true else false end end def available? failsafe returning: false do taken < available end end def reset del end def taken get.to_i end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
kredis-1.7.0 | lib/kredis/types/slots.rb |
kredis-1.6.1 | lib/kredis/types/slots.rb |
kredis-1.6.0 | lib/kredis/types/slots.rb |