模块 Rake::RakeFileUtils

FileUtilsExt 提供了一个自定义版本的 FileUtils 方法,该方法响应 verbosenowrite 命令。

常量

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