class Etcdv3::Lock
Public Class Methods
new(hostname, credentials, timeout, metadata = {})
click to toggle source
# File lib/etcdv3/lock.rb, line 5 def initialize(hostname, credentials, timeout, metadata = {}) @stub = V3lockpb::Lock::Stub.new(hostname, credentials) @timeout = timeout @metadata = metadata end
Public Instance Methods
lock(name, lease_id, timeout: nil)
click to toggle source
# File lib/etcdv3/lock.rb, line 11 def lock(name, lease_id, timeout: nil) request = V3lockpb::LockRequest.new(name: name, lease: lease_id) @stub.lock(request, deadline: deadline(timeout)) end
unlock(key, timeout: nil)
click to toggle source
# File lib/etcdv3/lock.rb, line 16 def unlock(key, timeout: nil) request = V3lockpb::UnlockRequest.new(key: key) @stub.unlock(request, deadline: deadline(timeout)) end
Private Instance Methods
deadline(timeout)
click to toggle source
# File lib/etcdv3/lock.rb, line 23 def deadline(timeout) from_relative_time(timeout || @timeout) end