class RedisLocker::MethodLocker
Public Class Methods
new(model_locker, method_name)
click to toggle source
Calls superclass method
RedisLocker::Locker::new
# File lib/redis_locker/method_locker.rb, line 5 def initialize(model_locker, method_name) @model_locker = model_locker @key_string = "LOCKER:#{model_locker.key_string}:#{method_name}" super end
Public Instance Methods
lock()
click to toggle source
# File lib/redis_locker/method_locker.rb, line 11 def lock return false if locked? @model_locker.lock redis.sadd(@key_string, @instance_hash) end
lock!()
click to toggle source
# File lib/redis_locker/method_locker.rb, line 18 def lock! raise Errors::AlreadyLocked if locked? @model_locker.lock lock end
locked?()
click to toggle source
# File lib/redis_locker/method_locker.rb, line 25 def locked? redis.scard(@key_string) > 1 end
unlock()
click to toggle source
# File lib/redis_locker/method_locker.rb, line 29 def unlock return true unless locked? (redis.srem(@key_string, @instance_hash) && @model_locker.unlock) end