enumerator.txt

Path: enumerator/enumerator.txt
Last Update: Sat Oct 18 00:09:43 AUS Eastern Standard Time 2003

.\" 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: enumerator.txt,v 1.2 2003/10/17 14:09:43 knu Exp $

** 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:

    to_enum(method = :each, *args)
    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"]

            # protects an array from being modified
            a = [1, 2, 3]
            some_method(a.to_enum)

And the Enumerable module.

    each_slice(n) {...}

        Iterates the given block for each slice of <n> 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 <n>
        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:

[Validate]