##inject
eachなどのようにブロック内の処理を繰り返し行うメソッド
1~5までの合計を計算する
[1, 2, 3, 4, 5].inject {|sum, num| sum + num }
#=> 15
↓上のコードと同じことをしている
sum = 0
[1, 2, 3, 4, 5].each {|v| sum += v }
p sum # => 15
初期値を指定して毎回のループでリセットすることもできる(デフォルトは初期値0なので省略可)
[1, 2, 3, 4, 5].inject(1) {|sum, num| sum + num**2 }
#=> 56
##参考