Ruby のブロック変数・num, hash, abc にはスコープある。
ブロックには、do〜end と、{ } があって、前後の結合度の強弱が異なる。
each_with_object は蓄積変数・hash

ary = [ 1, 2 ]

num = "num"
hash = { a: 10 }
abc = "abc"

p res = ary.each_with_object( { } ) { |num, hash; abc|
num += 1
abc = num
hash[ abc ] = true
}
#=> {2=>true, 3=>true}

p num #=> "num"
p hash #=> {:a=>10}
p abc #=> "abc"