external_iterator.rb 417 B

12345678910111213141516171819202122232425262728
  1. module Puppet
  2. module Util
  3. class ExternalIterator
  4. def initialize(coll)
  5. @coll = coll
  6. @cur_index = -1
  7. end
  8. def next
  9. @cur_index = @cur_index + 1
  10. item_at(@cur_index)
  11. end
  12. def peek
  13. item_at(@cur_index + 1)
  14. end
  15. private
  16. def item_at(index)
  17. if @coll.length > index
  18. [@coll[index], index]
  19. else
  20. [nil, nil]
  21. end
  22. end
  23. end
  24. end
  25. end