Forum: Ruby Problem with: Exception: cannot convert Class into String

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
basi (Guest)
on 2005-12-22 07:58
(Received via mailing list)
Hello:

puts aString                    <<< no error printing aString here
process(aString)
.....
....
def process(aString)
  puts aString                 <<< error printing aString here
end


The error is: Exception: cannot convert Class into String

What would it cause for aString to become a Class?

Thanks!
basi
konsu (Guest)
on 2005-12-22 08:28
(Received via mailing list)
hello,

this code is not complete, so it is difficult to guess why aString
inside
the method is Class.

konstantin

"basi" <removed_email_address@domain.invalid> wrote in message
news:removed_email_address@domain.invalid...
basi (Guest)
on 2005-12-22 08:43
(Received via mailing list)
Yes, it is incomplete. I was illustrating that the variable aString is
of type string just before calling the method, and right inside the
method, in the very first command, it is diagnosed as a Class.

-- I renamed the parameter aString in the method definition. That does
not work.
-- I moved the order of calling the method earlier/later in the call
sequence. No dice.
-- I retyped the line. Didn't work.

No that I expected these to make a difference.

I redefined aString inside the method, thus:

def process(aString)
  aString = "ohmy"
  puts aString
end

It works, but doesn't solve the problem.

I wonder what kind of statement that I might have made somewhere  in
the program that would turn a string variable into a Class?

Thanks!
basi
nobuyoshi nakada (Guest)
on 2005-12-22 09:04
(Received via mailing list)
Hi,

At Thu, 22 Dec 2005 15:42:51 +0900,
basi wrote in [ruby-talk:172076]:
> Yes, it is incomplete. I was illustrating that the variable aString is
> of type string just before calling the method, and right inside the
> method, in the very first command, it is diagnosed as a Class.

Nobody can answer without concrete code.
basi (Guest)
on 2005-12-22 09:43
(Received via mailing list)
Hi,
I found the problem. I should convert the value to a string:

Wrong (for my purpose)
aString = workStrings[0]

I got it to work with:
aString = workStrings[0].to_s

Cheers,
basi
Chintan T. (Guest)
on 2005-12-22 11:34
(Received via mailing list)
even workStrings[0,1] will work too.
0 is the start position and 1 indicates how many chars to read from that
position

unlike C, in ruby string[0] returns the ascii value of the char at
positon 0
and not char.
basi (Guest)
on 2005-12-22 18:49
(Received via mailing list)
Thanks. This can come in handy, too.
basi
This topic is locked and can not be replied to.