I won't comment on your use case, others have already done that.
However. I think naming the method self is potentially confusing,
since self is a keyword which means the receiver of the current
I'd have to think about what self meant anytime I read that.
Smalltalk has a similar method, which is usually used to end a cascade
of message sends (something which ruby doesn't have).
pt = Point.new x:1; y:2; yourself
A rather concocted example, but the point is that the yourself method
returns the receiver, and is IMHO a much better method name.
By way of explanation, a semicolon after a message invocation
indicates that the subsequent message is sent to the receiver of the
preceding message, instead of the result of that mesage. so the above
would be equivalent to:
tmp = Point.new
tmp x: 1
tmp y: 2
pt = tmp yourself