From: Andrea Dallera Date: 2010-04-12T03:28:28+09:00 Subject: Re: Method call within a class Hei, "each"'s receiver will be an instance of a class that includes the module Enumerable and "size"'s receiver will be an instance of the class Array. Example: array = Array.new p array.size # => 0 class MyEnumerable include Enumerable end foo = MyEnumerable.new foo.each_with_index # doesn't raise, the method is defined HTH -- Andrea Dallera http://github.com/bolthar/freightrain http://usingimho.wordpress.com On Mon, 2010-04-12 at 02:48 +0900, Li Chen wrote: > Hi all, > > Maybe I miss something. But I am confused about method call within a > class. What is the format for that? I just copy some code segments from > the forum as follows: > > module Enumerable > def each_with_index > i = 0 > each do |elem| > yield elem, i > i += 1 > end > end > end > > class Array > def each_with_index > size.times do |i| > yield self[i], i > end > end > end > > So > 1) which one is the reciever for "each"? > 2) which one is the reciever for "size"? > > Do they default to self? > > Thanks, > > Li