On 5/11/06, Charles Churchill <churchill / datatek-net.com> wrote:
> I've found myself writing the following code to address needs I have
> processing formatted text files, but is this possible some other and I
> am going through foolish gyrations here...
>
> Here is the code:
>
>  class Array
>    alias :orig_each :each
>    def each(cnt = 1, &blk)
>      if cnt == 1
>         orig_each { |x| blk.call(x) }
>      else
>         0.step(self.size - 1,cnt) do |i|
>            yield(self.slice(i,cnt))
>         end
>      end
>   end
>  end
>
> so I can do things like this
>
> arr = [ key, value, value, key, value, value, key, value, value, ... ]
> arr.each(3) do |key,val1,val2|
>   #manipulate them as I see fit
> end
>
> Thanks for any help you can give!
>
> Charles Churchill
> Account Executive
> Datatek, Inc.
> 800 536-4835 ext. 145
> 1 919 425-3145 (international)
> churchill / datatek-net.com
>

require 'enumerator'
(1..9).to_enum.each_slice(3) { |x, y, z| puts "%i %i %i" % [x, y, z] }

1 2 3
4 5 6
7 8 9

-Alder