ファイルシステムで何かが変更されるのを待つ必要がある単純なタスクがあります(これは基本的にプロトタイプ用のコンパイラです)。したがって、変更されたファイルをチェックした後、5秒間スリープする単純な無限ループがあります。
loop do
# if files changed
# process files
# and puts result
sleep 5
end
敬礼の代わりにCtrl+C
、ループをブロックすることなく、キーが押されたかどうかをテストして確認できるようにしたいと思います。基本的に、キーが押されているかどうかを確認する方法が必要です。次に、Qが満たされるまでキーを押してから、プログラムを終了します。
私が欲しいのは:
def wait_for_Q
key_is_pressed && get_ch == 'Q'
end
loop do
# if files changed
# process files
# and puts result
wait_for_Q or sleep 5
end
それとも、これはRubyが(うまく)できないことですか?