lib/dcell/registries/redis_adapter.rb in dcell-0.10.0 vs lib/dcell/registries/redis_adapter.rb in dcell-0.12.0.pre

- old
+ new

@@ -12,15 +12,46 @@ @namespace = options[:namespace] || "dcell_#{@env}" redis = Redis.new options @redis = Redis::Namespace.new @namespace, :redis => redis + @node_registry = NodeRegistry.new(@redis) @global_registry = GlobalRegistry.new(@redis) end + def clear_nodes + @node_registry.clear + end + def clear_globals @global_registry.clear end + + class NodeRegistry + def initialize(redis) + @redis = redis + end + + def get(node_id) + @redis.hget 'nodes', node_id + end + + def set(node_id, addr) + @redis.hset 'nodes', node_id, addr + end + + def nodes + @redis.hkeys 'nodes' + end + + def clear + @redis.del 'nodes' + end + end + + def get_node(node_id); @node_registry.get(node_id) end + def set_node(node_id, addr); @node_registry.set(node_id, addr) end + def nodes; @node_registry.nodes end class GlobalRegistry def initialize(redis) @redis = redis end