院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

upto,downtoの代替

Numericクラスにこんなメソッド追加したらどう

class Numeric
  def to(num, &block)
    if self > num
      (num..self).reverse_each(&block)
    else  
      (self..num).each(&block)
    end
  end
end

5.to(8){|i| puts i} #=> 5,6,7,8
8.to(5){|i| puts i} #=> 8,7,6,5

#ちなみに前回提案した書き方にも利用できる
for i in 5.to(8)
for i in 8.to(5)

良さそうと思ったけど範囲が両方変数の時に
インクリメントかデクリメントかがわかりにくいのか
となるとupto,downtoのほうがいいかな