簡體   English   中英

我將如何強制內核#get在rake任務中使用STDIN#get?

[英]How would I force Kernel#gets to use STDIN#gets in a rake task?

因此,我試圖使Rake任務干燥,該任務運行需要用戶輸入的腳本,並且遇到了與此海報相同的問題 -默認情況下,僅調用gets假設rake參數(在這種情況下為db:seed )是應該從中讀取的文件,當然不存在。 我周圍這讓由只調用STDIN.gets ,工作正常,但我很想能夠只使用gets我可以使用的方式puts (耙似乎也沒有問題STDOUT默認) -作為一個靜態方法。

有什么方法可以強制在Rake中從STDIN讀取Kernel#gets (或更籠統地說,當表面上傳遞了命令行參數時,是否有任何方法可以強制Kernel#getsSTDIN讀取?)這是不好的做法嗎?

(由@ the-tin-man在此評論中回答)

在任何情況下(包括Rake),強制Kernel#getsSTDIN讀取,在DRYness中幾乎沒有什么優勢。 盡管可以做到(通過修改$stdin ),但是不應該這樣做,因為它既脆弱又容易出錯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM