Class: Leonidas::Commands::Processor
- Inherits:
-
Object
- Object
- Leonidas::Commands::Processor
- Defined in:
- lib/leonidas/commands/processor.rb
Instance Method Summary collapse
-
#initialize(handlers) ⇒ Processor
constructor
A new instance of Processor.
- #process(commands, persist = false) ⇒ Object
Constructor Details
#initialize(handlers) ⇒ Processor
Returns a new instance of Processor.
6 7 8 9 10 11 12 |
# File 'lib/leonidas/commands/processor.rb', line 6 def initialize(handlers) @handlers = [ ] handlers.each do |handler| raise TypeError, "Argument must include Leonidas::Commands::Handler" unless handler.class < ::Leonidas::Commands::Handler @handlers << handler end end |
Instance Method Details
#process(commands, persist = false) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/leonidas/commands/processor.rb', line 14 def process(commands, persist=false) commands.sort! {|command1, command2| command1. <=> command2.} commands.each do |command| raise TypeError, "Argument must be a Leonidas::Commands::Command" unless command.is_a? ::Leonidas::Commands::Command @handlers.each do |command_handler| if command_handler.handles? command command_handler.run(command) command_handler.persist(command) if persist end end end end |