ruby-changes:38082
From: hsbt <ko1@a...>
Date: Sat, 4 Apr 2015 21:32:25 +0900 (JST)
Subject: [ruby-changes:38082] hsbt:r50163 (trunk): * lib/rake/*: Gemify rake [fix GH-862][Feature #11025]
hsbt 2015-04-04 21:31:31 +0900 (Sat, 04 Apr 2015) New Revision: 50163 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=50163 Log: * lib/rake/*: Gemify rake [fix GH-862][Feature #11025] * test/rake/*: ditto. * tool/rbinstall.rb: ditto. Removed files: trunk/bin/rake trunk/lib/rake/alt_system.rb trunk/lib/rake/application.rb trunk/lib/rake/backtrace.rb trunk/lib/rake/clean.rb trunk/lib/rake/cloneable.rb trunk/lib/rake/contrib/.document trunk/lib/rake/contrib/compositepublisher.rb trunk/lib/rake/contrib/ftptools.rb trunk/lib/rake/contrib/publisher.rb trunk/lib/rake/contrib/rubyforgepublisher.rb trunk/lib/rake/contrib/sshpublisher.rb trunk/lib/rake/contrib/sys.rb trunk/lib/rake/cpu_counter.rb trunk/lib/rake/default_loader.rb trunk/lib/rake/dsl_definition.rb trunk/lib/rake/early_time.rb trunk/lib/rake/ext/core.rb trunk/lib/rake/ext/module.rb trunk/lib/rake/ext/pathname.rb trunk/lib/rake/ext/string.rb trunk/lib/rake/ext/time.rb trunk/lib/rake/file_creation_task.rb trunk/lib/rake/file_list.rb trunk/lib/rake/file_task.rb trunk/lib/rake/file_utils.rb trunk/lib/rake/file_utils_ext.rb trunk/lib/rake/gempackagetask.rb trunk/lib/rake/invocation_chain.rb trunk/lib/rake/invocation_exception_mixin.rb trunk/lib/rake/late_time.rb trunk/lib/rake/linked_list.rb trunk/lib/rake/loaders/makefile.rb trunk/lib/rake/multi_task.rb trunk/lib/rake/name_space.rb trunk/lib/rake/packagetask.rb trunk/lib/rake/pathmap.rb trunk/lib/rake/phony.rb trunk/lib/rake/private_reader.rb trunk/lib/rake/promise.rb trunk/lib/rake/pseudo_status.rb trunk/lib/rake/rake_module.rb trunk/lib/rake/rake_test_loader.rb trunk/lib/rake/rdoctask.rb trunk/lib/rake/ruby182_test_unit_fix.rb trunk/lib/rake/rule_recursion_overflow_error.rb trunk/lib/rake/runtest.rb trunk/lib/rake/scope.rb trunk/lib/rake/task.rb trunk/lib/rake/task_argument_error.rb trunk/lib/rake/task_arguments.rb trunk/lib/rake/task_manager.rb trunk/lib/rake/tasklib.rb trunk/lib/rake/testtask.rb trunk/lib/rake/thread_history_display.rb trunk/lib/rake/thread_pool.rb trunk/lib/rake/trace_output.rb trunk/lib/rake/version.rb trunk/lib/rake/win32.rb trunk/lib/rake.rb trunk/test/rake/file_creation.rb trunk/test/rake/helper.rb trunk/test/rake/support/rakefile_definitions.rb trunk/test/rake/support/ruby_runner.rb trunk/test/rake/test_private_reader.rb trunk/test/rake/test_rake.rb trunk/test/rake/test_rake_application.rb trunk/test/rake/test_rake_application_options.rb trunk/test/rake/test_rake_backtrace.rb trunk/test/rake/test_rake_clean.rb trunk/test/rake/test_rake_cpu_counter.rb trunk/test/rake/test_rake_definitions.rb trunk/test/rake/test_rake_directory_task.rb trunk/test/rake/test_rake_dsl.rb trunk/test/rake/test_rake_early_time.rb trunk/test/rake/test_rake_extension.rb trunk/test/rake/test_rake_file_creation_task.rb trunk/test/rake/test_rake_file_list.rb trunk/test/rake/test_rake_file_list_path_map.rb trunk/test/rake/test_rake_file_task.rb trunk/test/rake/test_rake_file_utils.rb trunk/test/rake/test_rake_ftp_file.rb trunk/test/rake/test_rake_functional.rb trunk/test/rake/test_rake_invocation_chain.rb trunk/test/rake/test_rake_late_time.rb trunk/test/rake/test_rake_linked_list.rb trunk/test/rake/test_rake_makefile_loader.rb trunk/test/rake/test_rake_multi_task.rb trunk/test/rake/test_rake_name_space.rb trunk/test/rake/test_rake_package_task.rb trunk/test/rake/test_rake_path_map.rb trunk/test/rake/test_rake_path_map_explode.rb trunk/test/rake/test_rake_path_map_partial.rb trunk/test/rake/test_rake_pathname_extensions.rb trunk/test/rake/test_rake_pseudo_status.rb trunk/test/rake/test_rake_rake_test_loader.rb trunk/test/rake/test_rake_reduce_compat.rb trunk/test/rake/test_rake_require.rb trunk/test/rake/test_rake_rules.rb trunk/test/rake/test_rake_scope.rb trunk/test/rake/test_rake_task.rb trunk/test/rake/test_rake_task_argument_parsing.rb trunk/test/rake/test_rake_task_arguments.rb trunk/test/rake/test_rake_task_lib.rb trunk/test/rake/test_rake_task_manager.rb trunk/test/rake/test_rake_task_manager_argument_resolution.rb trunk/test/rake/test_rake_task_with_arguments.rb trunk/test/rake/test_rake_test_task.rb trunk/test/rake/test_rake_thread_pool.rb trunk/test/rake/test_rake_top_level_functions.rb trunk/test/rake/test_rake_win32.rb trunk/test/rake/test_thread_history_display.rb trunk/test/rake/test_trace_output.rb trunk/test/testunit/test_rake_integration.rb Modified files: trunk/ChangeLog trunk/defs/default_gems trunk/gems/bundled_gems trunk/test/runner.rb trunk/tool/rbinstall.rb Index: defs/default_gems =================================================================== --- defs/default_gems (revision 50162) +++ defs/default_gems (revision 50163) @@ -1,4 +1,3 @@ https://github.com/ruby/ruby/blob/trunk/defs/default_gems#L1 # gem base directory versioning file [executable files under bin] -rake lib/rake lib/rake.rb [rake] rdoc lib/rdoc lib/rdoc.rb [rdoc ri] json ext/json ext/json/lib/json/version.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 50162) +++ ChangeLog (revision 50163) @@ -1,3 +1,9 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Sat Apr 4 21:31:18 2015 SHIBATA Hiroshi <shibata.hiroshi@g...> + + * lib/rake/*: Gemify rake [fix GH-862][Feature #11025] + * test/rake/*: ditto. + * tool/rbinstall.rb: ditto. + Sat Apr 4 11:30:24 2015 Nobuyoshi Nakada <nobu@r...> * string.c (rb_str_setbyte): check the argument first not to Index: gems/bundled_gems =================================================================== --- gems/bundled_gems (revision 50162) +++ gems/bundled_gems (revision 50163) @@ -1,3 +1,4 @@ https://github.com/ruby/ruby/blob/trunk/gems/bundled_gems#L1 power_assert 0.2.2 test-unit 3.0.9 minitest 5.4.3 +rake 10.4.2 Index: lib/rake.rb =================================================================== --- lib/rake.rb (revision 50162) +++ lib/rake.rb (revision 50163) @@ -1,79 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake.rb#L0 -#-- -# Copyright 2003-2010 by Jim Weirich (jim.weirich@g...) -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. -#++ - -module Rake - VERSION = '10.4.2' -end - -require 'rake/version' - -# :stopdoc: -# TODO: Remove in Rake 11 -RAKEVERSION = Rake::VERSION -# :startdoc: - -require 'rbconfig' -require 'fileutils' -require 'singleton' -require 'monitor' -require 'optparse' -require 'ostruct' - -require 'rake/ext/module' -require 'rake/ext/string' -require 'rake/ext/time' - -require 'rake/win32' - -require 'rake/linked_list' -require 'rake/cpu_counter' -require 'rake/scope' -require 'rake/task_argument_error' -require 'rake/rule_recursion_overflow_error' -require 'rake/rake_module' -require 'rake/trace_output' -require 'rake/pseudo_status' -require 'rake/task_arguments' -require 'rake/invocation_chain' -require 'rake/task' -require 'rake/file_task' -require 'rake/file_creation_task' -require 'rake/multi_task' -require 'rake/dsl_definition' -require 'rake/file_utils_ext' -require 'rake/file_list' -require 'rake/default_loader' -require 'rake/early_time' -require 'rake/late_time' -require 'rake/name_space' -require 'rake/task_manager' -require 'rake/application' -require 'rake/backtrace' - -$trace = false - -# :stopdoc: -# -# Some top level Constants. - -FileList = Rake::FileList -RakeFileUtils = Rake::FileUtilsExt Index: lib/rake/thread_history_display.rb =================================================================== --- lib/rake/thread_history_display.rb (revision 50162) +++ lib/rake/thread_history_display.rb (revision 50163) @@ -1,48 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/thread_history_display.rb#L0 -require 'rake/private_reader' - -module Rake - - class ThreadHistoryDisplay # :nodoc: all - include Rake::PrivateReader - - private_reader :stats, :items, :threads - - def initialize(stats) - @stats = stats - @items = { :_seq_ => 1 } - @threads = { :_seq_ => "A" } - end - - def show - puts "Job History:" - stats.each do |stat| - stat[:data] ||= {} - rename(stat, :thread, threads) - rename(stat[:data], :item_id, items) - rename(stat[:data], :new_thread, threads) - rename(stat[:data], :deleted_thread, threads) - printf("%8d %2s %-20s %s\n", - (stat[:time] * 1_000_000).round, - stat[:thread], - stat[:event], - stat[:data].map do |k, v| "#{k}:#{v}" end.join(" ")) - end - end - - private - - def rename(hash, key, renames) - if hash && hash[key] - original = hash[key] - value = renames[original] - unless value - value = renames[:_seq_] - renames[:_seq_] = renames[:_seq_].succ - renames[original] = value - end - hash[key] = value - end - end - end - -end Index: lib/rake/trace_output.rb =================================================================== --- lib/rake/trace_output.rb (revision 50162) +++ lib/rake/trace_output.rb (revision 50163) @@ -1,22 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/trace_output.rb#L0 -module Rake - module TraceOutput # :nodoc: all - - # Write trace output to output stream +out+. - # - # The write is done as a single IO call (to print) to lessen the - # chance that the trace output is interrupted by other tasks also - # producing output. - def trace_on(out, *strings) - sep = $\ || "\n" - if strings.empty? - output = sep - else - output = strings.map { |s| - next if s.nil? - s =~ /#{sep}$/ ? s : s + sep - }.join - end - out.print(output) - end - end -end Index: lib/rake/backtrace.rb =================================================================== --- lib/rake/backtrace.rb (revision 50162) +++ lib/rake/backtrace.rb (revision 50163) @@ -1,23 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/backtrace.rb#L0 -module Rake - module Backtrace # :nodoc: all - SYS_KEYS = RbConfig::CONFIG.keys.grep(/(?:[a-z]prefix|libdir)\z/) - SYS_PATHS = RbConfig::CONFIG.values_at(*SYS_KEYS).uniq + - [ File.join(File.dirname(__FILE__), "..") ] - - SUPPRESSED_PATHS = SYS_PATHS. - map { |s| s.gsub("\\", "/") }. - map { |f| File.expand_path(f) }. - reject { |s| s.nil? || s =~ /^ *$/ } - SUPPRESSED_PATHS_RE = SUPPRESSED_PATHS.map { |f| Regexp.quote(f) }.join("|") - SUPPRESSED_PATHS_RE << "|^org\\/jruby\\/\\w+\\.java" if - Object.const_defined?(:RUBY_ENGINE) and RUBY_ENGINE == 'jruby' - - SUPPRESS_PATTERN = %r!(\A(#{SUPPRESSED_PATHS_RE})|bin/rake:\d+)!i - - def self.collapse(backtrace) - pattern = Rake.application.options.suppress_backtrace_pattern || - SUPPRESS_PATTERN - backtrace.reject { |elem| elem =~ pattern } - end - end -end Index: lib/rake/clean.rb =================================================================== --- lib/rake/clean.rb (revision 50162) +++ lib/rake/clean.rb (revision 50163) @@ -1,76 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/clean.rb#L0 -# The 'rake/clean' file defines two file lists (CLEAN and CLOBBER) and -# two rake tasks (:clean and :clobber). -# -# [:clean] Clean up the project by deleting scratch files and backup -# files. Add files to the CLEAN file list to have the :clean -# target handle them. -# -# [:clobber] Clobber all generated and non-source files in a project. -# The task depends on :clean, so all the clean files will -# be deleted as well as files in the CLOBBER file list. -# The intent of this task is to return a project to its -# pristine, just unpacked state. - -require 'rake' - -# :stopdoc: - -module Rake - module Cleaner - extend FileUtils - - module_function - - def cleanup_files(file_names) - file_names.each do |file_name| - cleanup(file_name) - end - end - - def cleanup(file_name, opts={}) - begin - rm_r file_name, opts - rescue StandardError => ex - puts "Failed to remove #{file_name}: #{ex}" unless file_already_gone?(file_name) - end - end - - def file_already_gone?(file_name) - return false if File.exist?(file_name) - - path = file_name - prev = nil - - while path = File.dirname(path) - return false if cant_be_deleted?(path) - break if [prev, "."].include?(path) - prev = path - end - true - end - private_class_method :file_already_gone? - - def cant_be_deleted?(path_name) - File.exist?(path_name) && - (!File.readable?(path_name) || !File.executable?(path_name)) - end - private_class_method :cant_be_deleted? - end -end - -CLEAN = ::Rake::FileList["**/*~", "**/*.bak", "**/core"] -CLEAN.clear_exclude.exclude { |fn| - fn.pathmap("%f").downcase == 'core' && File.directory?(fn) -} - -desc "Remove any temporary products." -task :clean do - Rake::Cleaner.cleanup_files(CLEAN) -end - -CLOBBER = ::Rake::FileList.new - -desc "Remove any generated file." -task :clobber => [:clean] do - Rake::Cleaner.cleanup_files(CLOBBER) -end Index: lib/rake/tasklib.rb =================================================================== --- lib/rake/tasklib.rb (revision 50162) +++ lib/rake/tasklib.rb (revision 50163) @@ -1,24 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/tasklib.rb#L0 -require 'rake' - -module Rake - - # Base class for Task Libraries. - class TaskLib - include Cloneable - include Rake::DSL - - # Make a symbol by pasting two strings together. - # - # NOTE: DEPRECATED! This method is kinda stupid. I don't know why - # I didn't just use string interpolation. But now other task - # libraries depend on this so I can't remove it without breaking - # other people's code. So for now it stays for backwards - # compatibility. BUT DON'T USE IT. - #-- - # TODO: Remove in Rake 11 - def paste(a, b) # :nodoc: - (a.to_s + b.to_s).intern - end - end - -end Index: lib/rake/pathmap.rb =================================================================== --- lib/rake/pathmap.rb (revision 50162) +++ lib/rake/pathmap.rb (revision 50163) @@ -1,3 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/pathmap.rb#L0 -# TODO: Remove in Rake 11 - -require 'rake/ext/string' Index: lib/rake/dsl_definition.rb =================================================================== --- lib/rake/dsl_definition.rb (revision 50162) +++ lib/rake/dsl_definition.rb (revision 50163) @@ -1,201 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/dsl_definition.rb#L0 -# Rake DSL functions. -require 'rake/file_utils_ext' - -module Rake - - ## - # DSL is a module that provides #task, #desc, #namespace, etc. Use this - # when you'd like to use rake outside the top level scope. - # - # For a Rakefile you run from the command line this module is automatically - # included. - - module DSL - - #-- - # Include the FileUtils file manipulation functions in the top - # level module, but mark them private so that they don't - # unintentionally define methods on other objects. - #++ - - include FileUtilsExt - private(*FileUtils.instance_methods(false)) - private(*FileUtilsExt.instance_methods(false)) - - private - - # :call-seq: - # task task_name - # task task_name: dependencies - # task task_name, arguments => dependencies - # task task_name, argument[, argument ...], :needs: dependencies - # - # Declare a basic task. The +task_name+ is always the first argument. If - # the task name contains a ":" it is defined in that namespace. - # - # The +dependencies+ may be a single task name or an Array of task names. - # The +argument+ (a single name) or +arguments+ (an Array of names) define - # the arguments provided to the task. - # - # The task, argument and dependency names may be either symbols or - # strings. - # - # A task with a single dependency: - # - # task clobber: %w[clean] do - # rm_rf "html" - # end - # - # A task with an argument and a dependency: - # - # task :package, [:version] => :test do |t, args| - # # ... - # end - # - # To invoke this task from the command line: - # - # $ rake package[1.2.3] - # - # Alternate definition: - # - # task :package, :version, needs: :test do |t, args| - # # ... - # end - # - def task(*args, &block) # :doc: - Rake::Task.define_task(*args, &block) - end - - # Declare a file task. - # - # Example: - # file "config.cfg" => ["config.template"] do - # open("config.cfg", "w") do |outfile| - # open("config.template") do |infile| - # while line = infile.gets - # outfile.puts line - # end - # end - # end - # end - # - def file(*args, &block) # :doc: - Rake::FileTask.define_task(*args, &block) - end - - # Declare a file creation task. - # (Mainly used for the directory command). - def file_create(*args, &block) - Rake::FileCreationTask.define_task(*args, &block) - end - - # Declare a set of files tasks to create the given directories on - # demand. - # - # Example: - # directory "testdata/doc" - # - def directory(*args, &block) # :doc: - result = file_create(*args, &block) - dir, _ = *Rake.application.resolve_args(args) - dir = Rake.from_pathname(dir) - Rake.each_dir_parent(dir) do |d| - file_create d do |t| - mkdir_p t.name unless File.exist?(t.name) - end - end - result - end - - # Declare a task that performs its prerequisites in - # parallel. Multitasks does *not* guarantee that its prerequisites - # will execute in any given order (which is obvious when you think - # about it) - # - # Example: - # multitask deploy: %w[deploy_gem deploy_rdoc] - # - def multitask(*args, &block) # :doc: - Rake::MultiTask.define_task(*args, &block) - end - - # Create a new rake namespace and use it for evaluating the given - # block. Returns a NameSpace object that can be used to lookup - # tasks defined in the namespace. - # - # Example: - # - # ns = namespace "nested" do - # # the "nested:run" task - # task :run - # end - # task_run = ns[:run] # find :run in the given namespace. - # - # Tasks can also be defined in a namespace by using a ":" in the task - # name: - # - # task "nested:test" do - # # ... - # end - # - def namespace(name=nil, &block) # :doc: - name = name.to_s if name.kind_of?(Symbol) - name = name.to_str if name.respond_to?(:to_str) - unless name.kind_of?(String) || name.nil? - raise ArgumentError, "Expected a String or Symbol for a namespace name" - end - Rake.application.in_namespace(name, &block) - end - - # Declare a rule for auto-tasks. - # - # Example: - # rule '.o' => '.c' do |t| - # sh 'cc', '-o', t.name, t.source - # end - # - def rule(*args, &block) # :doc: - Rake::Task.create_rule(*args, &block) - end - - # Describes the next rake task. Duplicate descriptions are discarded. - # Descriptions are shown with <code>rake -T</code> (up to the first - # sentence) and <code>rake -D</code> (the entire description). - # - # Example: - # desc "Run the Unit Tests" - # task test: [:build] - # # ... run tests - # end - # - def desc(description) # :doc: - Rake.application.last_description = description - end - - # Import the partial Rakefiles +fn+. Imported files are loaded - # _after_ the current file is completely loaded. This allows the - # import statement to appear anywhere in the importing file, and yet - # allowing the imported files to depend on objects defined in the - # importing file. - # - # A common use of the import statement is to include files - # containing dependency declarations. - # - # See also the --rakelibdir command line option. - # - # Example: - # import ".depend", "my_rules" - # - def import(*fns) # :doc: - fns.each do |fn| - Rake.application.add_import(fn) - end - end - end - extend FileUtilsExt -end - -# Extend the main object with the DSL commands. This allows top-level -# calls to task, etc. to work from a Rakefile without polluting the -# object inheritance tree. -self.extend Rake::DSL Index: lib/rake/invocation_exception_mixin.rb =================================================================== --- lib/rake/invocation_exception_mixin.rb (revision 50162) +++ lib/rake/invocation_exception_mixin.rb (revision 50163) @@ -1,16 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/invocation_exception_mixin.rb#L0 -module Rake - module InvocationExceptionMixin - # Return the invocation chain (list of Rake tasks) that were in - # effect when this exception was detected by rake. May be null if - # no tasks were active. - def chain - @rake_invocation_chain ||= nil - end - - # Set the invocation chain in effect when this exception was - # detected. - def chain=(value) - @rake_invocation_chain = value - end - end -end Index: lib/rake/private_reader.rb =================================================================== --- lib/rake/private_reader.rb (revision 50162) +++ lib/rake/private_reader.rb (revision 50163) @@ -1,20 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/private_reader.rb#L0 -module Rake - - # Include PrivateReader to use +private_reader+. - module PrivateReader # :nodoc: all - - def self.included(base) - base.extend(ClassMethods) - end - - module ClassMethods - - # Declare a list of private accessors - def private_reader(*names) - attr_reader(*names) - private(*names) - end - end - - end -end Index: lib/rake/rule_recursion_overflow_error.rb =================================================================== --- lib/rake/rule_recursion_overflow_error.rb (revision 50162) +++ lib/rake/rule_recursion_overflow_error.rb (revision 50163) @@ -1,20 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/rule_recursion_overflow_error.rb#L0 - -module Rake - - # Error indicating a recursion overflow error in task selection. - class RuleRecursionOverflowError < StandardError - def initialize(*args) - super - @targets = [] - end - - def add_target(target) - @targets << target - end - - def message - super + ": [" + @targets.reverse.join(' => ') + "]" - end - end - -end Index: lib/rake/file_utils.rb =================================================================== --- lib/rake/file_utils.rb (revision 50162) +++ lib/rake/file_utils.rb (revision 50163) @@ -1,128 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/lib/rake/file_utils.rb#L0 -require 'rbconfig' -require 'fileutils' - -#-- -# This a FileUtils extension that defines several additional commands to be -# added to the FileUtils utility functions. -module FileUtils - # Path to the currently running Ruby program - RUBY = ENV['RUBY'] || File.join( - RbConfig::CONFIG['bindir'], - RbConfig::CONFIG['ruby_install_name'] + RbConfig::CONFIG['EXEEXT']). - sub(/.*\s.*/m, '"\&"') - - (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/