rubyのブロックのスコープ(引数とそれ以外での違い)

rubyのブロックのスコープについてちょっと勘違いしていたのでメモ
rubyのバージョンは1.9.3

まとめ

ブロックの引数
ブロックローカル
初出がブロック内の(=ブロック内で宣言された)変数
ブロックローカル
初出がブロック外の(=ブロック外で宣言された)変数
非ブロックローカル

テストコード

#!/usr/bin/env ruby                                                                                                                                                                                         

a = 0
b = 0

(1..5).each do |a|
  b = a
  c = a
end

p a  #=> 0
p b  #=> 5
p c  # undefined local variable

所感

上みたいなコードでbもブロックローカルだとか書いてあるサイトがあって混乱してた。