这没有意义。 1.9.3 不应该这样做 :verbose 除非明确告知这样做。您可以查看 1.9.3 库中 mkdir 的实现,例如:
def mkdir(list, options = {})
fu_check_options options, OPT_TABLE['mkdir']
list = fu_list(list)
fu_output_message "mkdir #{options[:mode] ? ('-m %03o ' % options[:mode]) : ''}#{list.join ' '}" if options[:verbose]
return if options[:noop]
list.each do |dir|
fu_mkdir dir, options[:mode]
end
end
您可以看到,除非明确提供 :verbose 选项,否则不会生成消息。
但是,要在所有 FileUtils 方法中启用 :verbose,您只需将 include FileUtils::Verbose 放入您的命名空间即可。这适用于 1.8 和 1.9 ruby:
irb(main):001:0> RUBY_VERSION
=> "1.8.7"
irb(main):002:0> include FileUtils::Verbose
=> Object
irb(main):003:0> mkdir 'fooof'
mkdir fooof
=> ["fooof"]
顺便说一句,Rake 可能已经在 1.9.3 中执行此操作,这可以解释为什么它在 1.9.3 中执行它在 1.8.6 中而不是在 1.8.6 中执行的操作。我没有检查这个,但这是我能想到的唯一解释。
Rake 提供了自己的 FileUtils 扩展,名为 Rake::FileUtilsExt。这个模块有一个verbose 标志。要激活它,只需将其添加到 Rakefile 的顶部:
Rake::FileUtilsExt.verbose(true)