Sha256: 077bb75701c5a37ef1848d5e3ecf1b911f7ebae82faaf3542cb54b6774dddac3

Contents?: true

Size: 1.18 KB

Versions: 9

Compression:

Stored size: 1.18 KB

Contents

#!/usr/bin/env ruby
# listener.rb
# Controller Listener (for debugging)

require 'rinda/ring'

class Listener

  def initialize(params = {})
    @controller_uri   = params[:controller_uri]
    logfile = STDOUT
    @log  = Logger.new(logfile, 'daily')
    @log.level = Logger::DEBUG
    @log.datetime_format = "%Y-%m-%d %H:%M:%S "
  end

  def start
    DRb.start_service
    ring_server = DRbObject.new(nil, @controller_uri)
    service = ring_server.read([:WatirGrid, nil, nil, nil, nil, nil, nil])
    observers = []
    observers << ring_server.notify('write',[:WatirGrid, nil, nil, nil, nil, nil, nil], nil)
    observers << ring_server.notify('take', [:WatirGrid, nil, nil, nil, nil, nil, nil], nil)
    observers << ring_server.notify('delete', [:WatirGrid, nil, nil, nil, nil, nil, nil], nil)
    @log.debug("Listener started on   : #{@controller_uri}")
    threads = []
    observers.each do |observer|
      threads << Thread.new do
        observer.each do |event|
          @log.debug(event.inspect)
        end
      end
    end
    # abort all threads on an exception
    Thread.abort_on_exception = true

    # wait for explicit stop via ctrl-c
    DRb.thread.join if __FILE__ == $0
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
watirgrid-1.1.3 lib/listener.rb
watirgrid-1.1.3.pre lib/listener.rb
watirgrid-1.1.2 lib/listener.rb
watirgrid-1.1.1 lib/listener.rb
watirgrid-1.1.0 lib/listener.rb
watirgrid-1.0.6 lib/listener.rb
watirgrid-1.0.5 lib/listener.rb
watirgrid-1.0.4 lib/listener.rb
watirgrid-1.0.4.pre lib/listener.rb