Ruby 可以通过命令行访问多行用法来记录Rake任务吗?

Ruby 可以通过命令行访问多行用法来记录Rake任务吗?,ruby,rake,documentation,Ruby,Rake,Documentation,Rake允许简洁地记录任务正在做什么。但是,如果一个任务打算提供更多关于其使用情况的信息,该怎么办?下面是一个使用多行desc desc <<~lid Do nothing, even when arguments are provided. Usage: rake 'users:idle["something", "anotherthing"]' rake 'users:idle[, "anotherthing"]' # something is ignor

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

desc我来到这里时遇到了同样的问题:我在任务中添加了一个带有默认值的参数,并希望对其进行足够详细的记录,以确保人们知道他们可以传递自己的值

我发现,如果我把字符串加长,它会打印整个字符串,并将其包装到下一行,这看起来很糟糕。但是如果我传递了一个多行字符串,
-T
输出将只打印到第一行末尾的字符串

事实证明,这种行为是故意的:

描述用rake-T显示(直到第一句) 和rake-D(整个描述)

根据上面的示例,
rake-D
(或
rake--description
)应该可以实现以下功能:

$ 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任务的文章中:如果你不能在一个句子中解释你的RAKE任务,那么这可能意味着你的RAKE任务正在做一个以上的工作,你应该考虑拆分你的RAKE任务。将默认隐式值设置为git config.user.email
/`apg`返回。它还允许通过参数提供自定义值。是的,它可以被拆分,但依我的口味,它没有那么重要。这样说来,这个建议作为一般的经验法则似乎很好,谢谢。