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-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel