Class: Glimmer::CommandHandlerChainLink

Inherits:
Object
  • Object
show all
Defined in:
lib/glimmer/command_handler_chain_link.rb

Instance Method Summary collapse

Constructor Details

#initialize(command_handler) ⇒ CommandHandlerChainLink

Returns a new instance of CommandHandlerChainLink.



3
4
5
# File 'lib/glimmer/command_handler_chain_link.rb', line 3

def initialize(command_handler)
  @command_handler = command_handler
end

Instance Method Details

#chain_to(next_chain_link) ⇒ Object



6
7
8
# File 'lib/glimmer/command_handler_chain_link.rb', line 6

def chain_to(next_chain_link)
  @next_chain_link = next_chain_link
end

#handle(parent, command_symbol, *args, &block) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/glimmer/command_handler_chain_link.rb', line 9

def handle(parent, command_symbol, *args, &block)
  if (@command_handler.can_handle?(parent, command_symbol, *args, &block))
    Glimmer.logger.debug "#{@command_handler.class.to_s} will handle command: #{command_symbol} with arguments #{args}"
    return @command_handler.do_handle(parent, command_symbol, *args, &block)
  elsif @next_chain_link
    return @next_chain_link.handle(parent, command_symbol, *args, &block)
  else
    Glimmer.logger.debug "Command: #{command_symbol} cannot be handled!"
    return nil
  end
end