Class: RedisLock::MultiLock

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/redis_lock/multi_lock.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ MultiLock

Returns a new instance of MultiLock.



7
8
9
10
11
12
13
# File 'lib/redis_lock/multi_lock.rb', line 7

def initialize(*args)
  @opts = extract_options!(args)
  @keys = args
  @locks = @keys.map do |k|
             RedisLock.new(k, @opts)
           end
end

Instance Attribute Details

#keysObject (readonly)

Returns the value of attribute keys.



4
5
6
# File 'lib/redis_lock/multi_lock.rb', line 4

def keys
  @keys
end

#locksObject (readonly)

Returns the value of attribute locks.



4
5
6
# File 'lib/redis_lock/multi_lock.rb', line 4

def locks
  @locks
end

#optsObject (readonly)

Returns the value of attribute opts.



4
5
6
# File 'lib/redis_lock/multi_lock.rb', line 4

def opts
  @opts
end

Instance Method Details

#configObject



23
24
25
# File 'lib/redis_lock/multi_lock.rb', line 23

def config
  RedisLock.config
end

#deleteObject Also known as: unlock!, open!, remove



27
28
29
# File 'lib/redis_lock/multi_lock.rb', line 27

def delete
  map(&:delete).all?{ |e| e === true }
end

#extract_options!(args) ⇒ Object



15
16
17
# File 'lib/redis_lock/multi_lock.rb', line 15

def extract_options!(args)
  args.last.is_a?(::Hash) ? args.pop : {}
end

#keyObject



39
40
41
# File 'lib/redis_lock/multi_lock.rb', line 39

def key
  map(&:key).join(', ')
end

#locked?Boolean Also known as: exists?, in_use?

Returns:

  • (Boolean)


43
44
45
# File 'lib/redis_lock/multi_lock.rb', line 43

def locked?
  any?(&:locked?)
end

#open?Boolean Also known as: unlocked?

Returns:

  • (Boolean)


34
35
36
# File 'lib/redis_lock/multi_lock.rb', line 34

def open?
  all?(&:open?)
end

#set(ttl, opts = {}) ⇒ Object



19
20
21
# File 'lib/redis_lock/multi_lock.rb', line 19

def set(ttl, opts = {})
  map { |l| l.set(ttl, opts) }.all?{ |e| e === true }
end