(I posted this before on the google-group rather than the usenet group, but it seems not to have shown up. I don't know why. If this is a duplicate for anyone, my apologies) def initialize(foo,bar,bat) @foo,@bar,@bat = foo,bar,bat end Seems clumsy and not at all DRY. What would seem the obvious approach to me would be this: def initialize(@foo,@bar,@bat) end Is there a reason it's not done that way?