I have a new question regarding _why's post [1]. [1] http://redhanded.hobix.com/bits/wonderOfTheWhenBeFlat.html In the comments he explains that */asterisk is now being used as a replacement for the method #to_a. But I don't see how that's true. Let's look at an example. irb(main):001:0> @r1 = (0..10) => 0..10 irb(main):002:0> @r2 = (11..20) => 11..20 irb(main):003:0> def foo a irb(main):004:1> case a irb(main):005:2> when *@r1 irb(main):006:2> puts "#{a} in range r1" irb(main):007:2> when @r2.to_a irb(main):008:2> puts "#{a} in range r2" irb(main):009:2> else irb(main):010:2* puts "#{a} NOT in any defined range" irb(main):011:2> end irb(main):012:1> end => nil irb(main):013:0> foo 3 3 in range r1 => nil irb(main):014:0> foo 12 12 NOT in any defined range => nil If * is really equivalent to #to_a in this case, then the second "when" test should succeed when passed argument 12, right? As can be seen from the output, it triggers the else clause. I looked up * in the 2nd Ed PickAxe and it doesn't cover this functionality at all. It talks about * being used in patterns and in coalescing method argument lists.