Sha256: 733b9f7605d189d6f4ab45bc4181534cb06a616b9980411848bae644c64a3aa6

Contents?: true

Size: 720 Bytes

Versions: 11

Compression:

Stored size: 720 Bytes

Contents

require 'cellect/node_set'

module Cellect
  module Client
    class NodeSet < Cellect::NodeSet
      attr_accessor :nodes
      
      def initialize(zk_url = nil)
        self.nodes = { }
        super
      end
      
      protected
      
      def nodes_changed(nodes)
        self.nodes = { }
        nodes.each do |node|
          self.nodes[node] = zk.get("/nodes/#{ node }").first
        end
      end
      
      def setup
        watch_nodes
        zk.mkdir_p '/nodes'
        nodes_changed zk.children('/nodes', watch: true)
      end
      
      def watch_nodes
        zk.register('/nodes') do |event|
          nodes_changed zk.children('/nodes', watch: true)
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
cellect-client-0.1.2.pre.jruby lib/cellect/client/node_set.rb
cellect-client-0.1.2 lib/cellect/client/node_set.rb
cellect-client-0.1.1 lib/cellect/client/node_set.rb
cellect-client-0.1.0 lib/cellect/client/node_set.rb
cellect-client-0.0.9 lib/cellect/client/node_set.rb
cellect-client-0.0.8 lib/cellect/client/node_set.rb
cellect-client-0.0.7 lib/cellect/client/node_set.rb
cellect-client-0.0.6 lib/cellect/client/node_set.rb
cellect-client-0.0.5 lib/cellect/client/node_set.rb
cellect-client-0.0.4 lib/cellect/client/node_set.rb
cellect-client-0.0.3 lib/cellect/client/node_set.rb