The splat argument it better suited for applying your method to a variable without a static value. User inputted arrays are a good example. If 'name' only had one value then you could use a defined variable but this snippet doesn't have one. Using the splat method is like telling your script "Stand by, I'll have something for you to apply this to eventually."
When you're returning the name, there are not supposed to be any variables to label a name, this is purely proof of concept. If you were using this in your own interpreter, it would return nothing because this is just a method, it isn't being applied to anything just yet. You would have to apply an array or hash 'name' variable to it.