Project

General

Profile

Actions

Bug #8407

closed

*args in method_missing not typing variables correctly

Added by rcastro (Ryan Castro) about 12 years ago. Updated about 12 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.0.0p0 (2013-02-24) [i386-mingw32]
[ruby-core:54994]

Description

When setting a variable with *args, it will not cast my string to a string type. But when used directly, it casts it as a String without issue.

I would expect it to operate like a normally array does, as demonstrated at the end of the code sample.

:

class Klass

def method_missing(sym, *args, &block)
puts *args[0].inspect # I am a string
puts *args[0].class # I am a string
mystring = *args[0]
puts mystring.class # I am an array!
again = *args[0][0]
puts again.class # I am still an array!
end
end

a = Klass.new

a.doThings("AmIAString?")

#And now, an array that doesn't use the "splat" {*} operator:
c = []
c[0] = "a"
d = c[0]
puts d.class #String

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0