On Sat, 31 Dec 2005 19:11:37 -0000, Marcin Miel¥Ê¥·y¥Ê§Ôki <lopexx / autograf.pl> wrote: > Jim wrote: >> Here's some example code. In method_b, what is the difference in >> calling method_a and self.method_a? >> > > In Your code it makes no difference, however there are situations when > You'll have to explicitly resolve method invocation, consider: > > class C > def meth1 > end > > def meth2 > meth1 # no problem, but.. > meth1=4 # variable assignment > self.meth1 # so we have to resolve it as a method > end > end > > other thing is operator method invocation: > > class D > > def + arg > p arg > end > > def meth > + 2 # Ruby sees it as unary plus, aka +@ > self + 2 # explicit > end > > end > > Somewhat related to the above is the following case: class Clz attr_accessor :myattr def amethod # doesn't work, Ruby treats as local assignment # myattr = 5 # We have to be explicit. self.myattr = 5 end end Another area I guess it could make a difference is: class ClzToo def amethod # doesn't work, private methods cannot be called # with a receiver. # puts self.aprivate # So we can only call without 'self' puts aprivate end private def aprivate "private" end end -- Ross Bamford - rosco / roscopeco.remove.co.uk