Sha256: c9eccca2bca27d5ad8c1707780a420442a45bda979d883a4d0ff6a193dab48ce
Contents?: true
Size: 935 Bytes
Versions: 4
Compression:
Stored size: 935 Bytes
Contents
class RedisLock class MultiLock extend Forwardable attr_reader :keys, :locks, :opts def_delegators :locks, :any?, :all?, :each, :map def initialize(*args) @opts = extract_options!(args) @keys = args @locks = @keys.map do |k| RedisLock.new(k, @opts) end end def extract_options!(args) args.last.is_a?(::Hash) ? args.pop : {} end def set(ttl, opts = {}) map { |l| l.set(ttl, opts) }.all?{ |e| e === true } end def config RedisLock.config end def delete map(&:delete).all?{ |e| e === true } end alias_method :unlock!, :delete alias_method :open!, :delete alias_method :remove, :delete def open? all?(&:open?) end alias_method :unlocked?, :open? def locked? any?(&:locked?) end alias_method :exists?, :locked? alias_method :in_use?, :locked? end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
redis_lock-0.4.3 | lib/redis_lock/multi_lock.rb |
redis_lock-0.4.2 | lib/redis_lock/multi_lock.rb |
redis_lock-0.4.1 | lib/redis_lock/multi_lock.rb |
redis_lock-0.4.0 | lib/redis_lock/multi_lock.rb |