class SerfHandlerProxy

Proxy for handling serf event

Public Class Methods

new(log_file = nil) click to toggle source
Calls superclass method SerfHandler::new
# File lib/serf_handler.rb, line 63
def initialize(log_file = nil)
  super(log_file)
  @handlers = {}
end

Public Instance Methods

good_handler() click to toggle source
# File lib/serf_handler.rb, line 72
def good_handler
  handler = nil
  if @handlers.include?(@role)
    handler = @handlers[@role]
  elsif @handlers.include?('default')
    handler = @handlers['default']
  end
  handler
end
register(role, handler) click to toggle source
# File lib/serf_handler.rb, line 68
def register(role, handler)
  @handlers[role] = handler
end
run() click to toggle source
# File lib/serf_handler.rb, line 82
def run
  if (the_handler = good_handler)
    begin
      the_handler.send @event
    rescue NoMethodError
      warn "#{@event} event not implemented by class"
    end
  else
    info 'no handler for role'
  end
end