Class: DCell::Registry::ZkAdapter::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/dcell/registries/zk_adapter.rb

Instance Method Summary collapse

Constructor Details

#initialize(zk, base_path, name, ephemeral) ⇒ Registry

Returns a new instance of Registry.



44
45
46
47
48
49
# File 'lib/dcell/registries/zk_adapter.rb', line 44

def initialize(zk, base_path, name, ephemeral)
  @zk = zk
  @base_path = File.join(base_path, name.to_s)
  @ephemeral = ephemeral
  @zk.mkdir_p @base_path
end

Instance Method Details

#allObject



65
66
67
# File 'lib/dcell/registries/zk_adapter.rb', line 65

def all
  @zk.children @base_path
end

#clearObject



69
70
71
72
# File 'lib/dcell/registries/zk_adapter.rb', line 69

def clear
  @zk.rm_rf @base_path
  @zk.mkdir_p @base_path
end

#get(key) ⇒ Object



51
52
53
54
55
# File 'lib/dcell/registries/zk_adapter.rb', line 51

def get(key)
  result, _ = @zk.get("#{@base_path}/#{key}")
  Marshal.load result
rescue ZK::Exceptions::NoNode
end

#set(key, value) ⇒ Object



57
58
59
60
61
62
63
# File 'lib/dcell/registries/zk_adapter.rb', line 57

def set(key, value)
  path = "#{@base_path}/#{key}"
  string = Marshal.dump value
  @zk.set path, string
rescue ZK::Exceptions::NoNode
  @zk.create path, string, :ephemeral => @ephemeral
end