> |What was wrong with having the receiver set the return value though?
> 
> Consistency.  Ruby provides illusion of assignment for attribute
> updating methods (e.g. foo=), and I thought the illusion should be
> complete as much as possible.

I must not be getting it.

class Foo
  attr_accessor(:a)
  attr_reader(:b)

  public
  def b=(b)
    @b = b
    return(b/2)
  end

  def initialize()
    @a = 42
    @b = 42
  end
end

f = Foo.new()
i = f.a = 42   # i == 42
i = f.b = 42   # i == 42 (now it's 42, but should be 28)

b=() modifies the return value.  Is that what's inconsistent?  That
the return value is different than argument?  Not to quote Dave, but
this seems a little too "mother knows best" given that the default
does return 42 and the only time it isn't 42 is when the author meant
for it to be something other than 42.  Is it a consistency issue for
people who don't use return()?  If that's the case, then that's just
sloppy/poor programing practices and something that I'd love to see
prevented when -w is thrown on.

-sc

-- 
Sean Chittenden