Method: LSystem::RulesEngine#each
- Defined in:
- lib/l_system/rules_engine.rb
#each(&block) ⇒ Object
Yield each successive generation to the given block, or return an Enumerator that will do so if no block is given.
132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/l_system/rules_engine.rb', line 132 def each( &block ) iter = Enumerator.new do |yielder| state = new_state = self.axiom.dup begin yielder.yield( new_state ) state = new_state new_state = self.apply_rules( state ) end until state == new_state end return iter unless block return iter.each( &block ) end |