On Friday 21 March 2008, Krzysieq wrote:
> Then it enforces habits, which I've been encouraged to develop anyways - my
> managers always told me not to use this.doSomething whenever there is no
> risk of ambiguity. Don't You think however, that this is quite harsh - I
> mean, don't You think this might get someone into bigger trouble sometime?
> I don't know Ruby well enough to think of an example yet, but something
> tells me this "feature" could be tricky...

Do you refer to being unable to write self.a_private_method ? I don't think it 
can cause any trouble. It does prevent you from writing code like the 
following:

class C
  
  def initialize
    @x = 2
  end

  def a_method value
    self.x = value
  end

  private
  
  def x= value
    #set the value of @x to something and do some other thing
  end

end

What the code is trying to do is define a private method, x= which changes the 
value of the instance variable @x and does some extra processing, then use 
this method every time it needs to change the value of @x. However, this kind 
of setter methods (those ending in =) need to be called with an explicit 
receiver, since otherwise ruby thinks we want to create the local variable x. 
But, since x= is a private method, it can't be called with an explicit 
receiver, either.

Of course, this is not a big problem: we have to call the method with another 
name (set_x, for example) and everything works again, even if it's not as 
pretty as it would have been with x=.

Stefano