Module: Rake::FileUtilsExt
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Extended In:
| |
Included In:
| |
Super Chains via Extension / Inclusion / Inheritance | |
Instance Chain:
self,
::FileUtils
|
|
Defined in: | lib/rake/file_utils_ext.rb |
Overview
FileUtilsExt
provides a custom version of the ::FileUtils methods that respond to the #verbose and #nowrite commands.
Constant Summary
-
DEFAULT =
# File 'lib/rake/file_utils_ext.rb', line 16Object.new
::FileUtils - Included
Class Attribute Summary
- .nowrite_flag rw
- .verbose_flag rw
Instance Method Summary
-
#nowrite(value = nil)
Get/set the nowrite flag controlling output from the ::FileUtils utilities.
-
#rake_check_options(options, *optdecl)
Check that the options do not contain options not listed in
optdecl
. -
#rake_merge_option(args, defaults)
Merge the given options with the default values.
-
#rake_output_message(message)
Send the message to the default rake output (which is $stderr).
-
#verbose(value = nil)
Get/set the verbose flag controlling output from the ::FileUtils utilities.
-
#when_writing(msg = nil)
Use this function to prevent potentially destructive ruby code from running when the
:nowrite
flag is set.
::FileUtils - Included
#ruby | Run a Ruby interpreter with the given arguments. |
#safe_ln | Attempt to do a normal file link, but fall back to a copy if the link fails. |
#sh | Run the system command |
#split_all | Split a file path into individual directory names. |
Class Attribute Details
.nowrite_flag (rw)
[ GitHub ]# File 'lib/rake/file_utils_ext.rb', line 13
attr_accessor :verbose_flag, :nowrite_flag
.verbose_flag (rw)
[ GitHub ]# File 'lib/rake/file_utils_ext.rb', line 13
attr_accessor :verbose_flag, :nowrite_flag
Instance Method Details
#nowrite(value = nil)
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 '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)
Check that the options do not contain options not listed in optdecl
. An ArgumentError exception is thrown if non-declared options are found.
# File 'lib/rake/file_utils_ext.rb', line 133
def (, *optdecl) h = .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)
Merge the given options with the default values.
# File 'lib/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)
Send the message to the default rake output (which is $stderr).
# File 'lib/rake/file_utils_ext.rb', line 126
def ( ) $stderr.puts( ) end
#verbose(value = nil)
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 '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)
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 '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