From: Akinori MUSHA Date: 2000-10-05T06:16:52+09:00 Subject: [ruby-talk:5292] RFC: Enumerable#every(n) Hi, Let me show you a new method candidate for Enumerable module, which I named "every". (I might not have implemented it this cleanly without yashi and znz's help. Thanks much!) * * * Enumerable#every(n) Returns an Enumerable object that yields the iterator block for every elements. The block is yielded with arguments for each, and if the number of elements are short by for the last yield, nil's are filled as necessary. Example 1: Enumerate the alphabets for every quartet and select ones that don't start with vowels: $ ruby -e 'p (("A".."Z").every(4).find_all{|i| "AEIOU".index(i[0]) == nil})' [["M", "N", "O", "P"], ["Q", "R", "S", "T"], ["Y", "Z", nil, nil]] Example 2: List the files in the current directory in 3-column format: $ ruby -e 'Dir.open(".").every(3).each{|i| puts "%-20s%-20s%-20s" % i}' . .. CVS cygwin djgpp ext lib misc missing sample win32 x68 README.EXT.jp .cvsignore COPYING ChangeLog MANIFEST Makefile Makefile.in README README.EXT (snip) string.o struct.o time.o util.o variable.o version.o dmyext.o libruby.a main.o miniruby rbconfig.rb libruby.so.16 libruby.so ruby The implementation is available at the following URI: http://people.FreeBSD.org/~knu/misc/rb_enum_every.diff Now I'd ask you some questions: 1) Is the name "every" appropriate? 2) Is it worth being integrated to the standard Enumerable class? Any comments are welcome. Thanks in advance. -- / /__ __ / ) ) ) ) / Akinori -Aki- MUSHA aka / (_ / ( (__( @ idaemons.org / FreeBSD.org "We're only at home when we're on the run, on the wing, on the fly"