Method: LSystem::ProductionAdapter#run
- Defined in:
- lib/l_system/production_adapter.rb
#run(rules_engine, iterations) ⇒ Object
Run productions for each generation produced by the given rules_engine up to iterations times.
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/l_system/production_adapter.rb', line 100 def run( rules_engine, iterations ) self.log.debug "Running %p for up to %d iterations" % [ rules_engine, iterations ] return rules_engine.each.with_index.inject( nil ) do |result, (generation, i)| self.log.debug "Running generation %d" % [ i ] self.on_start( i, result ) if self.respond_to?( :on_start ) self.run_generation( generation ) result = self.result( i ) if self.respond_to?( :result ) self.log.debug "Result [%d] is: %p" % [ i, result ] self.on_finish( i, result ) if self.respond_to?( :on_finish ) break result if i >= iterations - 1 result end end |