如何将命名参数传递给 Rake 任务?

发布于 2024-10-18 21:41:08 字数 632 浏览 1 评论 0原文

有没有一种方法可以在不使用环境变量的情况下将命名参数传递给 Rake 任务?

我知道 Rake 任务可以接受两种格式的参数:

环境变量

$ rake my_task foo=bar

这将创建一个名为 foo 和值 bar 的环境变量可以通过 ENV['foo'] 在 Rake 任务 my_task 中访问。

Rake 任务参数

$ rake my_task['foo','bar']

这会将值 foobar 传递给前两个任务参数(如果已定义)。如果 my_task 定义为:

task :my_task, :argument_1, :argument_2

argument_1 的值为 fooargument_2 的值为

Is there a way to pass named arguments to a Rake task without using environment variables?

I am aware that Rake tasks can accept arguments in two formats:

Environment Variables

$ rake my_task foo=bar

This creates an environment variable with the name foo and the value bar that can be accessed in the Rake task my_task by ENV['foo'].

Rake Task Arguments

$ rake my_task['foo','bar']

This passes the values foo and bar to the first two task arguments (if they are defined). If my_task were defined as:

task :my_task, :argument_1, :argument_2

then argument_1 would have the value foo and argument_2 would have the value bar.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遇到 2024-10-25 21:41:09

你可以这样说:

rake some_task -- --arg=value

然后,在你的任务中,ARGV将是

[ 'some_task', '--arg=value' ]

这样你可以使用OptionParser (或其他一些选项解析器)来解压 ARGV 就像在任何旧的 CLI 脚本中一样;看起来有趣的 -- 是防止 rake 尝试将 --arg=like 解析为 rake 开关所必需的。

使用标准环境变量方法可能会更好,它不像所有 -- 东西那么难看,而且它是向 rake 任务传递参数的常用方法。

You can say things like this:

rake some_task -- --arg=value

And then, inside your task, ARGV will be

[ 'some_task', '--arg=value' ]

so you could use OptionParser (or some other option parser) to unpack ARGV just like in any old CLI script; the funny looking -- is necessary to keep rake from trying to parse --arg=like as a rake switch.

You're probably better off with the standard environment variable approach, it isn't as ugly as all the -- stuff and it is the usual way of passing arguments to rake tasks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文