It's actually a difference between Ruby 1.8 and 1.9, see the same code with 1.9.3:
$ irb
1.9.3p125 :001 > eval "f=12"
=> 12
1.9.3p125 :002 > f
NameError: undefined local variable or method `f' for main:Object
from (irb):2
from /Users/mattetti/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in `<main>'
- Matt
On Thu, Mar 8, 2012 at 7:14 PM, Braxton Sherouse
<sherouse@email.virginia.edu> wrote:
Hello, all. I'm new to the list (and to MacRuby!), so I give my
apologies in advance for any newbie indiscretions.
I was working today with MacRuby as a scripting language within a
Cocoa app, and found a difference between how Ruby and MacRuby's eval
functions relate to their calling context.
Here's a reduction:
% irb --version
irb 0.9.5(05/04/13)
% irb
>> eval("f = 12")
=> 12
>> f
=> 12
% macirb --version
DietRB (0.6.1)
% macirb
irb(main):001:0> eval("f = 12")
=> 12
irb(main):002:0> f
NameError: undefined local variable or method `f' for main:TopLevel
I'm sure I'm missing something super basic. I followed a number of
false leads in trying to figure this out before emailing the list,
including checking out the $SAFE global (0 in both cases), and
constructing Bindings to the calling context (same result).
Thanks in advance for your patience and your help!
Best,
Braxton Sherouse
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel