1
私は、私のためにレーキタスクを実行し、出力をキャプチャするルビープログラムを持っています。今、彼らはPTY.spawnの中で動いています。私はこのアプローチの2つの問題を経験しています:生成されたプロセスと対話し、その出力をルビでキャプチャするには?
- 私はchildプロセス内でbinding.pryを使用することはできません。
- 独自の出力(プログレスバーの宝石など)を書き直すプロセスは出力を生成しますが、以前の出力を削除することはできませんので、1行が期待されるプログレッシブ出力が得られます。
私は問題を解決する必要があります。私が2番目の問題をプロセス中に取り除くことができればいいと思う。
1.未PRY-リモートに興味:
代わりに、あなたはが行区切りを返さない、
split
を使用することができます。それは実行可能な回避策ですが、私はむしろ直接それを解決したいと思います。 2.進捗バーの宝石は進捗状況を表示します。それが変更されると、その行が更新されます。対話型端末で実行すると、行が編集されて置き換えられます。 PTY.spawnで実行すると、行が累積します。私はそれが何をしているのか理解しています、私はインタラクティブなもののように動作する別のプロセスを生成する方法がわかりません。 – valadil「直接」を定義します。環境を変更して起動したときにコマンドラインで開始されたと思って、それがTTYによって開始されたと思うようにするには、コードを欺く必要があります。しかし、私はあなたがルビーをだまそうとしているように、ドラゴンズに満ちた道を右に導くだろうと思う。端末が文字列を表示する方法とコードがそれらを生成する方法を区別することは、理解することが重要です。コードの生成された出力ではなく、端末の情報の視覚的表現と対話しようとしているようです。 –