In Files

  • rake/file_utils_ext.rb

Rake::FileUtilsExt

FileUtilsExt provides a custom version of the FileUtils methods that respond to the verbose and nowrite commands.

Constants

DEFAULT

Attributes

nowrite_flag[RW]
verbose_flag[RW]

Public Instance Methods

nowrite(value=nil) click to toggle source

Get/set the nowrite flag controlling output from the FileUtils utilities. If verbose is true, then the utility method is echoed to standard output.

Examples:

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/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) click to toggle source

Check that the options do not contain options not listed in optdecl. An ArgumentError exception is thrown if non-declared options are found.

 
               # File rake/file_utils_ext.rb, line 133
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_merge_option(args, defaults) click to toggle source

Merge the given options with the default values.

 
               # File rake/file_utils_ext.rb, line 116
def rake_merge_option(args, defaults)
  if Hash === args.last
    defaults.update(args.last)
    args.pop
  end
  args.push defaults
  args
end
            
rake_output_message(message) click to toggle source

Send the message to the default rake output (which is $stderr).

 
               # File rake/file_utils_ext.rb, line 126
def rake_output_message(message)
  $stderr.puts(message)
end
            
verbose(value=nil) click to toggle source

Get/set the verbose flag controlling output from the FileUtils utilities. If verbose is true, then the utility method is echoed to standard output.

Examples:

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/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) click to toggle source

Use this function to prevent potentially destructive ruby code from running when the :nowrite flag is set.

Example:

when_writing("Building Project") do
  project.build
end

The following code will build the project under normal conditions. If the nowrite(true) flag is set, then the example will print:

DRYRUN: Building Project

instead of actually building the project.

 
               # File 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
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus