技術メモ

書いておぼえるブログ

【Ruby】配列をずっと循環させる

状況  

バッチ処理などで指定時間のあいだずっと配列をぐるぐるループしつづけていたい。  

コード

cycleをつかう。

['apple', 'banana', 'orange', 'peach', 'grape', 'pineapple'].cycle do |fruit|
  p "I like #{fruit}"
end

cycle(3)のように回転数を指定することもできる。このとき3回転する。  

参考  

わかりやすく、詳しい。

[Ruby] cycleメソッド(Array)の使い方 | qs Developers

雑感  

バッチ処理でたくさんあるデータをぐるぐる回していたい。指定の時間が来たらプロセスはいったん終了される。そしてまた再度プロセスが実行される。その繰り返しがつづく。具体的にはループさせたかったのはテーブルのカラム名だった。カラムごとにデータを処理するために、その名前を配列にして循環させたかった。わざわざ循環させたかった理由は、小刻みにでもすべてのカラムのデータを処理していきたかったからだった。