是否可以制作交互式 Rake 任务?
我想运行一个要求用户输入的 Rake 任务。
我知道我可以在命令行上提供输入,但我想询问用户是否确定要继续执行特定操作,以防他们错误输入提供给 Rake 的值之一任务。
I want to run a Rake task that asks the user for input.
I know that I can supply input on the command line, but I want to ask the user if they are sure they want to proceed with a particular action in case they mistyped one of the values supplied to the Rake task.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
像这样的事情可能会工作
任务重新启用并从 调用如何从 Rake 任务中运行 Rake 任务?
Something like this might work
Task reenabling and invoking from How to run Rake tasks from within Rake tasks?
这是一个不使用其他任务的示例。
Here's an example without using another task.
用户输入的一个方便功能是将其放入
do..while
循环中,仅在用户提供有效输入时才继续。 Ruby 没有显式地具有此构造,但您可以使用begin
和until
实现相同的效果。这将添加到已接受的答案中,如下所示:A handy feature for user input is to put it in a
do..while
loop, to only continue when a user has supplied valid input. Ruby doesn't explicitly have this construct, but you can achieve the same thing withbegin
anduntil
. That would add to the accepted answer as follows:您还可以将其包装在服务类中,以便可以对其进行单元测试并在您的 rake 任务中使用:
然后在您的任务中像这样使用它:
You could also wrap this up in a service class so it can be unit-tested and used across your rake tasks:
Then use it like so in your task: