From: Philipp Huber Date: 2005-09-01T17:09:08+09:00 Subject: Re: implementing the "each" method for own classes thanks a lot, works exactly as i wanted :) On 9/1/05, Brian Schr�der wrote: > On 01/09/05, Philipp Huber wrote: > > hello! > > > > first of all, i'm new to ruby and this list. > > > > my question is, i have a class "Queue" which implements a queue as > > linked list of "Item" objects. i'd like to implement an each method, > > so i can do something like > > > > queue.each do |item| > > item.do_somethng > > end > > > > any help would be appreciated! > > thanks, > > philipp > > > > > > It is a bit hard to help you, if we don't know your classes. But lets > say you have a class > class QueueNode > attr_accessor :next > ... > end > > and a class Queue with a variable @root holding the first entry of the > queue you could implement each as > > class Queue > ... > > def each(&block) > node = @root > begin > block[node] > end while node = node.next > end > end > > or you could use yield > > class Queue > ... > > def each > node = @root > begin > yield node > end while node = node.next > end > end > > that depends on personal preference. > > hope to help, > > Brian > -- > http://ruby.brian-schroeder.de/ > > Stringed instrument chords: http://chordlist.brian-schroeder.de/ > >