From b2de95d4afece89abd4ccf536295359f058c2043 Mon Sep 17 00:00:00 2001 From: knu Date: Mon, 13 Oct 2003 17:09:23 +0000 Subject: Add ext/enumerator, a helper module for the Enumerable interface. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/enumerator/enumerator.txt | 97 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 ext/enumerator/enumerator.txt (limited to 'ext/enumerator/enumerator.txt') diff --git a/ext/enumerator/enumerator.txt b/ext/enumerator/enumerator.txt new file mode 100644 index 0000000000..9a0f93a58e --- /dev/null +++ b/ext/enumerator/enumerator.txt @@ -0,0 +1,97 @@ +.\" enumerator.txt - -*- Indented-Text -*- +$Idaemons: /home/cvs/rb/enumerator/enumerator.txt,v 1.2 2001/07/15 10:19:24 knu Exp $ +$RoughId: enumerator.txt,v 1.5 2003/02/20 12:24:51 knu Exp $ +$Id$ + +** Enumerable::Enumerator(Class) + +A class which provides a method `each' to be used as an Enumerable +object. + +Superclass: Object + +Mix-ins: Enumerable + +require 'enumerator' + +Class Methods: + + new(obj, method = :each, *args) + + Creates a new Enumerable::Enumerator object, which is to be + used as an Enumerable object using the given object's given + method with the given arguments. + + e.g.: + str = "xyz" + + enum = Enumerable::Enumerator.new(str, :each_byte) + a = enum.map {|b| '%02x' % b } #=> ["78", "79", "7a"] + +Methods: + + each {...} + + Iterates the given block using the object and the method + specified in the first place. + + +Requiring this module also adds some methods to the Object class: + + enum_for(method = :each, *args) + + Returns Enumerable::Enumerator.new(self, method, *args). + + e.g.: + str = "xyz" + + enum = str.enum_for(:each_byte) + a = enum.map {|b| '%02x' % b } #=> ["78", "79", "7a"] + +And the Enumerable module. + + each_slice(n) {...} + + Iterates the given block for each slice of elements. + + e.g.: + (1..10).each_slice(3) {|a| p a} + # outputs below + [1, 2, 3] + [4, 5, 6] + [7, 8, 9] + [10] + + enum_slice(n) + + Returns Enumerable::Enumerator.new(self, :each_slice, n). + + each_cons(n) {...} + + Iterates the given block for each array of consecutive + elements. + + e.g.: + (1..10).each_cons(3) {|a| p a} + # outputs below + [1, 2, 3] + [2, 3, 4] + [3, 4, 5] + [4, 5, 6] + [5, 6, 7] + [6, 7, 8] + [7, 8, 9] + [8, 9, 10] + + enum_cons(n) + + Returns Enumerable::Enumerator.new(self, :each_cons, n). + + enum_with_index + + Returns Enumerable::Enumerator.new(self, :each_with_index). + +------------------------------------------------------- +Local variables: +fill-column: 70 +end: -- cgit v1.2.3