class Astapor::SerfHandlerProxy

Public Class Methods

new() click to toggle source
Calls superclass method Astapor::SerfHandler::new
# File lib/astapor.rb, line 33
def initialize
    super()
    @handlers = Hash.new
end

Public Instance Methods

get_klass() click to toggle source
# File lib/astapor.rb, line 42
def get_klass
    klass = nil
    if @handlers.has_key?(@role)
        klass = @handlers[@role]
    elsif @handlers.has_key?('default')
        klass = @handlers['default']
    end

    klass
end
register(role, handler) click to toggle source
# File lib/astapor.rb, line 38
def register(role, handler)
    @handlers[role] = handler
end
run() click to toggle source
# File lib/astapor.rb, line 53
def run
    klass = get_klass
    if klass.nil? 
        @logger.info("no handler for role #{@role}")
    else
        begin
            method_object = klass.method(@event.to_sym) 
            method_object.call
        rescue NameError => e
            @logger.info("event #{@event} not implemented by #{klass.class.name} class")
        end
    end
end