k-yamadaのブログ

プログラミングのメモ

rubyで処理時間の長いコマンドや、結果が返ってこないコマンドを実行する

rubyからandroidのadbコマンドを実行するプログラムを作っているのだが、adbコマンドはたまにフリーズして結果が返ってこない場合がある。
この問題を解決するために、以下の関数を作った。
adbコマンドに限らず、外部コマンドを実行する場合には汎用的に使える。

■仕様
wait_for(コマンド, 待ち時間)
・コマンドの実行が完了すれば、すぐに実行結果(標準出力)を返す。
・コマンドの実行が完了しなくても、待ち時間が経過すればその時点までの標準出力を返す。

■ソース