On 7/18/06, Justin Collins <collinsj / seattleu.edu> wrote: > > > Sean O'Halpin wrote: > > On 7/17/06, Thorben Mueller <dingsi / mistburg.de> wrote: > >> Rick Ashton schrieb: > >> > Thanks guys > >> > > >> > But it still doesn't load the file into the current scope as I > >> mentioned > >> > before. Is there some way to do this? > >> > > >> > ie: > >> > > >> > $ echo a=5 > blah.rb > >> > $ irb -r blah.rb > >> > irb(main):001:0> a > >> > NameError: undefined local variable or method `a' for main:Object > >> > from (irb):1 > >> > > >> > > >> > Thanks! > >> > > >> > >> Hi Rick, > >> > >> try eval(File.read('blah.rb')) > >> > >> ~dingsi > >> > >> > > > > eval() won't create local variables - it will update one if it already > > exists however: > > > > $ cat eval-test.rb > > a = 42 > > $ cat eval-scope.rb > > eval(File.read("eval-test.rb")) > > p a > > $ ruby eval-scope.rb > > eval-scope.rb:2: undefined local variable or method `a' for > > main:Object (NameError) > > > > $ cat eval-scope2.rb > > a = nil > > eval(File.read("eval-test.rb")) > > p a > > $ ruby eval-scope2.rb > > 42 > > > > > > Regards, > > Sean > > > > Interestingly, it _does_ work for me within irb: > > $ cat test.rb > puts "hi" > a = 1 > $ irb > irb(main):001:0> eval(File.read('test.rb')) > hi > => 1 > irb(main):002:0> puts a > 1 > => nil > > > > Which I think will work for what the OP wanted? > > -Justin > > You're right - another one of those little quirks of irb ;) (I'm too abashed to admit I missed the point) Regards, Sean