it will change the order of args. and this is not desirable, how to
It will not. In Ruby, the order of passed arguments is the order of
received arguments, always. Your struct, as it was said, defines two
useless local variables, and in fact passes them to the function.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.