Yes - a 1.9 change; 'parameters to a block are now always local to a block' - I'll probably forget again before it sticks.
On Jan 27, 9:44 am, Eloy Durán <eloy.de.en...@gmail.com> wrote: > The problem you are seeing is because inside the #map block you don't > reference the project root variable as an instance variable, but as a local > variable. Hence the error “undefined local variable or method > `theProjectRoot'” :) > > If you change the block like this, all should be good: > > map {|f| @theProjectRoot.stringByAppendingPathComponent(f) } > > On Jan 27, 2011, at 10:18 AM, Martin Hawkins wrote: > > > > > > > I find the following behaviour a little bizarre: > > At the macirb prompt (0.8) > > fileManager = NSFileManager.defaultManager > > @theProjectRoot = '/Users/martin/work/macruby/lots_of_files' > > => "/Users/martin/work/macruby/lots_of_files" > >>> filenames = fileManager.contentsOfDirectoryAtPath(@theProjectRoot, > >>> error:nil).map {|f| theProjectRoot.stringByAppendingPathComponent(f) } > > NameError: undefined local variable or method `theProjectRoot' for > > main:TopLevel > > > If I create a local variable with the name theProjectRoot, then the > > statement runs correctly. According to the documentation, > > NSFileManager.defaultManager.contentsOfDirectoryAtPath requires a > > string; the scope of the variable should be irrelevant, shouldn't it? > > > _______________________________________________ > > MacRuby-devel mailing list > > macruby-de...@lists.macosforge.org > >http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel > > _______________________________________________ > MacRuby-devel mailing list > MacRuby-de...@lists.macosforge.orghttp://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel