Class: Glimmer::CommandHandlerChainLink
- Inherits:
-
Object
- Object
- Glimmer::CommandHandlerChainLink
- Defined in:
- lib/glimmer/command_handler_chain_link.rb
Instance Method Summary collapse
- #chain_to(next_chain_link) ⇒ Object
- #handle(parent, command_symbol, *args, &block) ⇒ Object
-
#initialize(command_handler) ⇒ CommandHandlerChainLink
constructor
A new instance of CommandHandlerChainLink.
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 |