Rake 任务是否可以通过命令行访问的多行用法来记录?
Can a Rake task be documented with a multiline usage accessible from command line?
Rake 允许简洁地记录正在执行的任务。但是,如果任务旨在提供有关其用法的更多信息怎么办?这是用多行 desc
进行的幼稚尝试
desc <<~lid
Do nothing, even when arguments are provided.
Usage:
rake 'users:idle["something", "anotherthing"]'
rake 'users:idle[, "anotherthing"]' # something is ignored anyway
rake users:idle # do nothing tersely
lid
task :idle, [:option, :token] => :environment do |task, fad|
# Really, do nothing!
end
但是运行 rake --tasks
只会显示第一行。有没有办法通过一些 rake 命令访问 desc
的其余部分?
我来到这里时遇到了同样的问题:我向任务添加了一个具有默认值的参数,并希望对其进行足够详细的记录,以确保人们知道他们可以传递自己的值。
我发现如果我让字符串变长,它会打印整个字符串,并将其包装到下一行,这看起来很糟糕。但是如果我传递一个多行字符串,-T
输出只会打印到第一行末尾的字符串。
事实证明,这种行为是故意的:
https://ruby.github.io/rake/Rake/DSL.html#method-i-desc
Descriptions are shown with rake -T (up to the first sentence)
and rake -D (the entire description).
鉴于您上面的示例,rake -D
(或 rake --describe
)应该可以解决问题:
$ rake -T
rake idle[option,token] # Do nothing, even when arguments are provided
$ rake -D
rake idle[option,token]
Do nothing, even when arguments are provided.
Usage:
rake 'users:idle["something", "anotherthing"]'
rake 'users:idle[, "anotherthing"]' # something is ignored anyway
rake users:idle # do nothing tersely
Rake 允许简洁地记录正在执行的任务。但是,如果任务旨在提供有关其用法的更多信息怎么办?这是用多行 desc
desc <<~lid
Do nothing, even when arguments are provided.
Usage:
rake 'users:idle["something", "anotherthing"]'
rake 'users:idle[, "anotherthing"]' # something is ignored anyway
rake users:idle # do nothing tersely
lid
task :idle, [:option, :token] => :environment do |task, fad|
# Really, do nothing!
end
但是运行 rake --tasks
只会显示第一行。有没有办法通过一些 rake 命令访问 desc
的其余部分?
我来到这里时遇到了同样的问题:我向任务添加了一个具有默认值的参数,并希望对其进行足够详细的记录,以确保人们知道他们可以传递自己的值。
我发现如果我让字符串变长,它会打印整个字符串,并将其包装到下一行,这看起来很糟糕。但是如果我传递一个多行字符串,-T
输出只会打印到第一行末尾的字符串。
事实证明,这种行为是故意的:
https://ruby.github.io/rake/Rake/DSL.html#method-i-desc
Descriptions are shown with rake -T (up to the first sentence) and rake -D (the entire description).
鉴于您上面的示例,rake -D
(或 rake --describe
)应该可以解决问题:
$ rake -T
rake idle[option,token] # Do nothing, even when arguments are provided
$ rake -D
rake idle[option,token]
Do nothing, even when arguments are provided.
Usage:
rake 'users:idle["something", "anotherthing"]'
rake 'users:idle[, "anotherthing"]' # something is ignored anyway
rake users:idle # do nothing tersely