def acquire
      acquired = false

      token = non_blocking_acquire
      token = blocking_acquire if token.nil? && blocking?

      unless token.nil?
        @lease.expire(@expiry)
        @token = token
        @acquired.increment

        acquired = true
      end

      return acquired
    end
def acquire
      acquired = false

      token = non_blocking_acquire
      token = blocking_acquire if token.nil? && blocking?

      unless token.nil?
        @lease.expire(@expiry)
        @token = token
        @acquired.increment

        acquired = true
      end

      return acquired
    end
Attempts to acquire the lock. First attempts to grab the lease (a redis string).
 If the current token is already the lease token, the lock is considered acquired.
 If there is no current lease, then sets it to the current token.
 If there is a current lease that is not the current token, then:
   1) If this not a blocking lock (see Lock#blocking?), return false
   2) If this is a blocking lock, block and wait for the next token to be pushed on the tokens list
   3) If a token was pushed, set it as our token and refresh the expiry
 @return [Boolean] True if acquired, false otherwise