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

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

Instance Method Summary collapse

Constructor Details

#initialize(zk, base_path) ⇒ GlobalRegistry

Returns a new instance of GlobalRegistry.



85
86
87
88
# File 'lib/dcell/registries/zk_adapter.rb', line 85

def initialize(zk, base_path)
  @zk, @base_path = zk, "#{base_path}/globals"
  @zk.mkdir_p @base_path
end

Instance Method Details

#clearObject



111
112
113
114
# File 'lib/dcell/registries/zk_adapter.rb', line 111

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

#get(key) ⇒ Object



90
91
92
93
94
# File 'lib/dcell/registries/zk_adapter.rb', line 90

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

#global_keysObject

The keys to all globals in the system



107
108
109
# File 'lib/dcell/registries/zk_adapter.rb', line 107

def global_keys
  @zk.children(@base_path)
end

#set(key, value) ⇒ Object

Set a global value



97
98
99
100
101
102
103
104
# File 'lib/dcell/registries/zk_adapter.rb', line 97

def set(key, value)
  path = "#{@base_path}/#{key}"
  string = Marshal.dump value

  @zk.set path, string
rescue ZK::Exceptions::NoNode
  @zk.create path, string
end