Class: Astapor::SerfHandlerProxy

Inherits:
SerfHandler show all
Defined in:
lib/astapor.rb

Instance Method Summary collapse

Constructor Details

#initializeSerfHandlerProxy

Returns a new instance of SerfHandlerProxy.



33
34
35
36
# File 'lib/astapor.rb', line 33

def initialize
    super()
    @handlers = Hash.new
end

Instance Method Details

#get_klassObject



42
43
44
45
46
47
48
49
50
51
# 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) ⇒ Object



38
39
40
# File 'lib/astapor.rb', line 38

def register(role, handler)
    @handlers[role] = handler
end

#runObject



53
54
55
56
57
58
59
60
61
62
63
64
65
# 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