模块 Rake::RakeFileUtils
FileUtilsExt
提供了一个自定义版本的 FileUtils
方法,该方法响应 verbose
和 nowrite
命令。
常量
- DEFAULT
属性
nowrite_flag[RW]
verbose_flag[RW]
公共实例方法
nowrite(value=nil) { || ... } 点击以切换源码
获取/设置 nowrite 标志,控制来自 FileUtils
实用程序的输出。如果 verbose 为 true,则实用程序方法将回显到标准输出。
示例
nowrite # return the current value of the # nowrite flag nowrite(v) # set the nowrite flag to _v_. nowrite(v) { code } # Execute code with the nowrite flag set # temporarily to _v_. Return to the # original value when code is done.
# File rake-13.2.1/lib/rake/file_utils_ext.rb, line 77 def nowrite(value=nil) oldvalue = FileUtilsExt.nowrite_flag FileUtilsExt.nowrite_flag = value unless value.nil? if block_given? begin yield ensure FileUtilsExt.nowrite_flag = oldvalue end end oldvalue end
rake_check_options(options, *optdecl) 点击以切换源码
检查 options 是否包含未在 optdecl
中列出的选项。如果找到未声明的选项,则会抛出一个 ArgumentError 异常。
# File rake-13.2.1/lib/rake/file_utils_ext.rb, line 123 def rake_check_options(options, *optdecl) h = options.dup optdecl.each do |name| h.delete name end raise ArgumentError, "no such option: #{h.keys.join(' ')}" unless h.empty? end
rake_output_message(message) 点击以切换源码
将消息发送到默认的 rake 输出(即 $stderr)。
# File rake-13.2.1/lib/rake/file_utils_ext.rb, line 116 def rake_output_message(message) $stderr.puts(message) end
verbose(value=nil) { || ... } 点击以切换源码
获取/设置 verbose 标志,控制来自 FileUtils
实用程序的输出。如果 verbose 为 true,则实用程序方法将回显到标准输出。
示例
verbose # return the current value of the # verbose flag verbose(v) # set the verbose flag to _v_. verbose(v) { code } # Execute code with the verbose flag set # temporarily to _v_. Return to the # original value when code is done.
# File rake-13.2.1/lib/rake/file_utils_ext.rb, line 53 def verbose(value=nil) oldvalue = FileUtilsExt.verbose_flag FileUtilsExt.verbose_flag = value unless value.nil? if block_given? begin yield ensure FileUtilsExt.verbose_flag = oldvalue end end FileUtilsExt.verbose_flag end
when_writing(msg=nil) { || ... } 点击以切换源码
当设置 :nowrite 标志时,使用此函数来防止潜在的破坏性 ruby 代码运行。
示例
when_writing("Building Project") do project.build end
以下代码将在正常情况下构建项目。如果设置了 nowrite(true) 标志,则示例将打印
DRYRUN: Building Project
而不是实际构建项目。
# File rake-13.2.1/lib/rake/file_utils_ext.rb, line 107 def when_writing(msg=nil) if FileUtilsExt.nowrite_flag $stderr.puts "DRYRUN: #{msg}" if msg else yield end end