スコープ

あれ?Ruby のローカル変数のスコープってどうだっけ?

ローカル変数のスコープは、宣言した位置からその変数が宣言されたブロック、
メソッド定義、またはクラス/モジュール定義 の終りまでです。寿命も
そのブロックの終りまで(トップレベルのローカル変数はプログラムの終了まで)
ですが、例外としてブロックが手続きオブジェクト化された場合は、
そのオブジェクトが消滅するまで存在します。
同じスコープを参照する手続きオブジェクト間ではローカル変数は共有されます。

http://www.ruby-lang.org/ja/man/html/_CAD1BFF4A4C8C4EABFF4.html

手続きオブジェクトって何だっけ?Proc.new ですか?

そうそうそれで,代入っぽい文より前には存在しないってところが,
JavaScript のvar と違うなぁ.と思ったのを思い出したのだった.

{
i = 0                   # 変数iのスコープ
}