summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-02-04 18:37:52 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-02-04 18:37:52 +0000
commit780678dafbe330218b70981f2e1ca06502eb28c5 (patch)
tree19f9d25fa2713fb99e8495eb26e77670f35e7155 /lib
parentab53367bc7aec0ba935a62dc745f1f2e001f8a08 (diff)
* lib/fileutils.rb (FileUtils::LowMethods): make low level methods
in NoWrite and DryRun to do nothing. [ruby-dev:43129] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/fileutils.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/fileutils.rb b/lib/fileutils.rb
index 73e2bfe3c3..1023ae3063 100644
--- a/lib/fileutils.rb
+++ b/lib/fileutils.rb
@@ -1519,6 +1519,12 @@ module FileUtils
OPT_TABLE.keys.select {|m| OPT_TABLE[m].include?(opt) }
end
+ LOW_METHODS = singleton_methods(false) - collect_method(:noop).map(&:intern)
+ module LowMethods
+ module_eval("private\n" + ::FileUtils::LOW_METHODS.map {|name| "def #{name}(*)end"}.join("\n"),
+ __FILE__, __LINE__)
+ end
+
METHODS = singleton_methods() - [:private_module_function,
:commands, :options, :have_option?, :options_of, :collect_method]
@@ -1554,6 +1560,7 @@ module FileUtils
#
module NoWrite
include FileUtils
+ include LowMethods
@fileutils_output = $stderr
@fileutils_label = ''
::FileUtils.collect_method(:noop).each do |name|
@@ -1580,6 +1587,7 @@ module FileUtils
#
module DryRun
include FileUtils
+ include LowMethods
@fileutils_output = $stderr
@fileutils_label = ''
::FileUtils.collect_method(:noop).each do |name|