On 28/01/2011, at 2:46 AM, Eloy Durán wrote:
>
> In your example ‘theProjectRoot’ is not a parameter to the block, that's ‘f’.
> It could have been a local variable (or method) outside of the block, but
> that isn't so either, the one variable you defined that comes close is the
> instance va
I think you’re thinking about an unrelated change in 1.9, which is this:
% ruby -e 'x = 42; lambda { |x| x = 21 }.call(x); p x'
21
% ruby19 -e 'x = 42; lambda { |x| x = 21 }.call(x); p x'
42
In your example ‘theProjectRoot’ is not a parameter to the block, that's ‘f’.
It could have been a local
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 wrote:
> The problem you are seeing is because inside the #map block you don't
> reference the project root variable as an instance variable,
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
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,
>>