如何检测是否使用rake指定了--quiet选项

har*_*sha 3 ruby rake

如何检测是否使用rake指定了--quiet选项.

意图是根据类别过滤自定义消息.

class Category
  INFO = 1
  WARNING = 2
  ERROR = 3
end

@trace = true

task :silent do
  @trace = false
end

def trace(msg, category=Category::INFO)
  return if (@trace == nil)
  return if ((@trace == false) && (category == Category::INFO))
  puts msg
end
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果指定了--quiet选项,我想添加一个案例来过滤掉trace.

har*_*sha 6

Rake.verbose提供检查是否指定了--quiet模式的选项

下面简单的rake文件就像这样生成输出$ rake --quiet false

$ rake默认

task :default do
  puts Rake.verbose
end
Run Code Online (Sandbox Code Playgroud)

也可以使用Rake.verbose覆盖rakefile中的设置(true | false)

  • 看起来正确的方法就是这样:`Rake.application.options.verbose` (2认同)
  • 还有`Rake.application.options.silent`和`Rake.application.options.quiet`分别对应于`--silent`和`--quiet`. (2认同)