This post originated from an RSS feed registered with Ruby Buzz
by Ryan Davis.
Original Post: Splat is good for you
Feed Title: Polishing Ruby
Feed URL: http://blog.zenspider.com/index.rdf
Feed Description: Musings on Ruby and the Ruby Community...
def foo(*args)
[args].flatten.map do |arg|
# ...
end
end
def foo(*args)
Array(args).map do |arg|
# ...
end
end
and argues their (ugly) necessity. I think both examples fail to hit the mark (or there is a typo?) as they've ensured the initial codition simply by using *args. Allowing them to state the problem in a straightforward fashion:
def foo(*args)
args.flatten.map do |arg| # if you are trying to combine a bunch of arrays
# ...
end
end
def foo(*args)
args.map do |arg|
# ...
end
end
which, is much more natural. If I had to guess, I'd say they meant to not put the splat in front of args. I find using splat to be a better fit.