On Oct 13, 8:02 pm, dbl... / wobblini.net wrote: > On Sat, 14 Oct 2006, clintpachl wrote: > > class Test > > def x > > @x + '_instance' > > end > > > def x=(v) > > @x = v > > self.x # also tried `x' > > end > > end > > > t = Test.new > > puts t.x=('test_x') > > => test_x > > puts t.x > > => test_x_instance > > > Why doesn't the first puts output 'test_x_instance'? I would think that > > the self.x call in the writer would call the reader.This just came up today on IRC. I'd forgotten about it, but was > reminded. > > The writer method allows you to use the assignment-like syntax: > > t.x = value > > Since the goal of this is to make the method call look and feel more > assignment-like, and assignments return their right-hand side, the > writer-method calls also return their right-hand side, rather than the > last value in the method. > > > How can one call the reader from the writer method? > > You are calling the reader, but the magic rhs value overrides it. I > haven't found any way to circumvent it. David, you are right on. Now that I think about it, Ruby does the natural thing. I was just experimenting and thought it was weird that my return value was not returning. I guess I needed to step outside the box. -pachl