1

したがって、ユーザー入力を受け取るスクリプトを実行する Rake タスクを DRY しようとしていますが、このポスターと同じ問題に遭遇しました。デフォルトでは、呼び出すだけgetsで rake 引数 (この場合はdb:seed) がもちろん存在しないファイルから読み取る必要があります。を呼び出すだけでこれを回避できましたが、これは正常に機能しますが、使用できる方法(Rake はデフォルトで問題がないようです) を静的メソッドとしてSTDIN.gets使用できるようにしたいと考えています。getsputsSTDOUT

Rake 内から強制的Kernel#getsに読み取る方法はありますか? STDIN(または、より一般的には、表面上はコマンドライン引数が渡されたときに強制的Kernel#getsに読み取る方法はありSTDINますか?) または、それは悪い習慣でしょうか?

4

1 に答える 1

0

(このコメントで @the-tin-man が回答)

Rake を含むあらゆるコンテキストでのKernel#gets読み取りを強制しても、DRYness で得られる利点はほとんどありません。STDIN( を変更することで$stdin)実行できますが、脆弱でハッキーになるため、実行しないでください。

于 2014-12-08T04:55:14.263 に答える