[Ironruby-core] say['love'] = "*love*" fails

Curt Hagenlocher curth at microsoft.com
Sat Jun 21 09:22:39 EDT 2008

Is this from ir.exe or from your hosting code?

It looks like you didn't start entirely over. You need to make every reference global and not just subsequent ones.  That is,

$say = "I love Ruby"
puts $say
$say['love'] = "*LOVE*"

Also, it looks like we happen to be missing that particular overload of String.[]=, so if that's not already in RubyForge, you should file a bug report. :)

-----Original Message-----
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Ben Hall
Sent: Saturday, June 21, 2008 5:58 AM
To: ironruby-core at rubyforge.org
Subject: [Ironruby-core] say['love'] = "*love*" fails


I just wanted to quickly write some Ruby code to see if my hosting
worked.  Went onto the main ruby site and copied this block of code:

# Output "I love Ruby"
say = "I love Ruby"
puts say

# Output "I *LOVE* RUBY"
say['love'] = "*love*"
puts say.upcase

# Output "I *love* Ruby"
# five times
5.times { puts say }

When I tried this it failed:
>>> say['love'] = "*love*"
:0:in `Initialize##1': undefined local variable or method `say' for main:Object

I first thought this might have been because the console doesn't
support local variables and have some other problems going on. So I
tried this:

>>> $say['love'] = "*love*"
:0:in `Initialize##11': undefined local variable or method `[]=' for :NilClass (

Why isn't this working?


Ironruby-core mailing list
Ironruby-core at rubyforge.org

More information about the Ironruby-core mailing list