Some prefer doing everything without variables, this is a matter of taste. I am not sure there is no better way to obtain the same proc without using literal blocks, this was the first thing that came to my mind.
Hans, your proposal does not look good to me. IMO, it is strange to make
symbols callable and it is strange to add to the responsibilities of Symbol to maintain some SymbolHelper, which looks to me more like a ProcBuilder. Also, using method_missing is always a bit scary to me.