In the above if I use options insted of *options what is actually
happening..I would like to know their difference What actually means
*options
Thanks in advance
Sijo
This code might be a little deceptive, but if you look closely "options.select { |k, v| k == :b && options.delete(k)}.flatten" is just creating an array out of selected keys and values. After that, the splat operator (*) is being used to turn the array into parameters for the Hash. function...which turns it back into a hash. Tada!
I note that in Ruby 1.9.1, Hash#select returns a hash, making this weirdness unnecessary.