From: Sean Chittenden Date: 2003-02-11T11:13:59+09:00 Subject: Re: value of assignment (Re: Order of the value of an expression changed? (PR#579)) > |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