On 05/27/2011 03:22 PM, Patrick Lynch wrote:
> Hello!
>
> Novice here. I'm reading Beginning Ruby and Beginning Rails by Apres and
> building both applications they walk you through. Additionally, I'm
> taking courses at lynda dot com and attempting to build a simple
> application myself.
>
> That said, I'm aware of the limits you have with local variable being
> incapable of accessing variables defined inside of a code block, but is
> there any exception to this rule?
>
> Example:
> _____________
>
> 1.times do
>    File.open("text.txt").each {|a| puts a}
> end
>
> puts a
> # This where I get my error.
> _____________
>
> Is there anything I can do to 'puts a' that will allow it to return the
> content it was passed inside of the code block?
>
> Ultimately, I'd like to store the 'text.txt' as an array so I can call
> .uniq! on it... But we don't need to get into that in this thread.
>
> I hope my question makes sense.
>
> Thank you in advanced,
> Aaron
>

In light of your ultimate goal, consider using 
File.readlines("text.txt") [1].

Also note that in your example you are opening the file without ever 
closing it. If you pass a block to File.open(), it will ensure the file 
is closed [2].

[1] http://rdoc.info/stdlib/core/1.9.2/IO.readlines
[2] http://rdoc.info/stdlib/core/1.9.2/File.open


-Justin