summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--lib/README8
-rw-r--r--lib/ftools.rb261
-rw-r--r--lib/parsedate.rb53
-rwxr-xr-xlib/rake.rb1
-rw-r--r--lib/rdoc/generators/html_generator.rb9
-rw-r--r--lib/rdoc/generators/ri_generator.rb2
-rw-r--r--lib/rdoc/generators/xml_generator.rb2
-rw-r--r--lib/rdoc/rdoc.rb4
-rw-r--r--lib/shell/command-processor.rb19
10 files changed, 20 insertions, 352 deletions
diff --git a/ChangeLog b/ChangeLog
index 8a4c35b745..cfc5ccff0c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+Mon Dec 24 23:04:57 2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+
+ * lib/ftools.rb: removed obsoleted lib. use fileutils instead (by eban).
+
+ * lib/rdoc/rdoc.rb, lib/rdoc/generators/*, lib/rake.rb: let it use
+ fileutils instead of ftools.
+
+ * lib/shell/command-processor.rb: removed unused references to ftools.
+
+ * lib/parsedate.rb: removed. see [ruby-core:12535], [ruby-dev:31969].
+
+ * lib/README: updated.
+
Mon Dec 24 23:01:04 2007 Tanaka Akira <akr@fsij.org>
* lib/open-uri.rb (OpenURI::Buffer): use Meta ===. [ruby-core:14295]
diff --git a/lib/README b/lib/README
index 52a5e199f2..a1dbeb780f 100644
--- a/lib/README
+++ b/lib/README
@@ -16,14 +16,11 @@ fileutils.rb file utilities
finalize.rb adds finalizer to the object
find.rb traverses directory tree
forwardable.rb explicit delegation library
-ftools.rb file tools
getoptlong.rb GNU getoptlong compatible
-getopts.rb parses command line options (use getoptlong)
gserver.rb general TCP server
ipaddr.rb defines the IPAddr class
irb.rb interactive ruby
logger.rb simple logging utility
-mailread.rb reads mail headers
mathn.rb extended math operation
matrix.rb matrix calculation library
mkmf.rb Makefile maker
@@ -41,7 +38,6 @@ open-uri.rb easy-to-use network interface using URI and Net
open3.rb opens subprocess connection stdin/stdout/stderr
optparse.rb command line option analysis
ostruct.rb python style object
-parsearg.rb argument parser using getopts
parsedate.rb parses date string (obsolete)
pathname.rb Object-Oriented Pathname Class
pp.rb pretty print objects
@@ -55,13 +51,11 @@ rdoc source-code documentation tool
resolv-replace.rb replace Socket DNS by resolve.rb
resolv.rb DNS resolver in Ruby
rexml an XML parser for Ruby, in Ruby
-rubyunit.rb original Ruby Unit testing framework
scanf.rb scanf for Ruby
set.rb defines the Set class
shell.rb runs commands and does pipeline operations like shell
shellwords.rb split into words like shell
singleton.rb singleton design pattern library
-soap SOAP 1.1 implementation
sync.rb 2 phase lock
tempfile.rb temporary file with automatic removal
test/unit Ruby Unit Testing Framework
@@ -81,7 +75,5 @@ uri/ldap.rb ldap scheme support
uri/mailto.rb mailto scheme support
weakref.rb weak reference class
webrick.rb WEB server toolkit
-wsdl WSDL 1.1 implementation
xmlrpc XML-RPC implementation
-xsd XML Schema Datatypes implementation
yaml.rb YAML implementation
diff --git a/lib/ftools.rb b/lib/ftools.rb
deleted file mode 100644
index 5f082331fb..0000000000
--- a/lib/ftools.rb
+++ /dev/null
@@ -1,261 +0,0 @@
-#
-# = ftools.rb: Extra tools for the File class
-#
-# Author:: WATANABE, Hirofumi
-# Documentation:: Zachary Landau
-#
-# This library can be distributed under the terms of the Ruby license.
-# You can freely distribute/modify this library.
-#
-# It is included in the Ruby standard library.
-#
-# == Description
-#
-# ftools adds several (class, not instance) methods to the File class, for
-# copying, moving, deleting, installing, and comparing files, as well as
-# creating a directory path. See the File class for details.
-#
-# FileUtils contains all or nearly all the same functionality and more, and
-# is a recommended option over ftools
-#
-# When you
-#
-# require 'ftools'
-#
-# then the File class aquires some utility methods for copying, moving, and
-# deleting files, and more.
-#
-# See the method descriptions below, and consider using FileUtils as it is
-# more comprehensive.
-#
-class File
-end
-
-class << File
-
- BUFSIZE = 8 * 1024
-
- #
- # If +to+ is a valid directory, +from+ will be appended to +to+, adding
- # and escaping backslashes as necessary. Otherwise, +to+ will be returned.
- # Useful for appending +from+ to +to+ only if the filename was not specified
- # in +to+.
- #
- def catname(from, to)
- if directory? to
- join to.sub(%r([/\\]$), ''), basename(from)
- else
- to
- end
- end
-
- #
- # Copies a file +from+ to +to+. If +to+ is a directory, copies +from+
- # to <tt>to/from</tt>.
- #
- def syscopy(from, to)
- to = catname(from, to)
-
- fmode = stat(from).mode
- tpath = to
- not_exist = !exist?(tpath)
-
- from = open(from, "rb")
- to = open(to, "wb")
-
- begin
- while true
- to.syswrite from.sysread(BUFSIZE)
- end
- rescue EOFError
- ret = true
- rescue
- ret = false
- ensure
- to.close
- from.close
- end
- chmod(fmode, tpath) if not_exist
- ret
- end
-
- #
- # Copies a file +from+ to +to+ using #syscopy. If +to+ is a directory,
- # copies +from+ to <tt>to/from</tt>. If +verbose+ is true, <tt>from -> to</tt>
- # is printed.
- #
- def copy(from, to, verbose = false)
- $stderr.print from, " -> ", catname(from, to), "\n" if verbose
- syscopy from, to
- end
-
- alias cp copy
-
- #
- # Moves a file +from+ to +to+ using #syscopy. If +to+ is a directory,
- # copies from +from+ to <tt>to/from</tt>. If +verbose+ is true, <tt>from ->
- # to</tt> is printed.
- #
- def move(from, to, verbose = false)
- to = catname(from, to)
- $stderr.print from, " -> ", to, "\n" if verbose
-
- if RUBY_PLATFORM =~ /djgpp|(cyg|ms|bcc)win|mingw/ and file? to
- unlink to
- end
- fstat = stat(from)
- begin
- rename from, to
- rescue
- begin
- symlink readlink(from), to and unlink from
- rescue
- from_stat = stat(from)
- syscopy from, to and unlink from
- utime(from_stat.atime, from_stat.mtime, to)
- begin
- chown(fstat.uid, fstat.gid, to)
- rescue
- end
- end
- end
- end
-
- alias mv move
-
- #
- # Returns +true+ if and only if the contents of files +from+ and +to+ are
- # identical. If +verbose+ is +true+, <tt>from <=> to</tt> is printed.
- #
- def compare(from, to, verbose = false)
- $stderr.print from, " <=> ", to, "\n" if verbose
-
- return false if stat(from).size != stat(to).size
-
- from = open(from, "rb")
- to = open(to, "rb")
-
- ret = false
- fr = tr = ''
-
- begin
- while fr == tr
- fr = from.read(BUFSIZE)
- if fr
- tr = to.read(fr.size)
- else
- ret = to.read(BUFSIZE)
- ret = !ret || ret.length == 0
- break
- end
- end
- rescue
- ret = false
- ensure
- to.close
- from.close
- end
- ret
- end
-
- alias cmp compare
-
- #
- # Removes a list of files. Each parameter should be the name of the file to
- # delete. If the last parameter isn't a String, verbose mode will be enabled.
- # Returns the number of files deleted.
- #
- def safe_unlink(*files)
- verbose = if files[-1].is_a? String then false else files.pop end
- files.each do |file|
- begin
- unlink file
- $stderr.print "removing ", file, "\n" if verbose
- rescue Errno::EACCES # for Windows
- continue if symlink? file
- begin
- mode = stat(file).mode
- o_chmod mode | 0200, file
- unlink file
- $stderr.print "removing ", file, "\n" if verbose
- rescue
- o_chmod mode, file rescue nil
- end
- rescue
- end
- end
- end
-
- alias rm_f safe_unlink
-
- #
- # Creates a directory and all its parent directories.
- # For example,
- #
- # File.makedirs '/usr/lib/ruby'
- #
- # causes the following directories to be made, if they do not exist.
- # * /usr
- # * /usr/lib
- # * /usr/lib/ruby
- #
- # You can pass several directories, each as a parameter. If the last
- # parameter isn't a String, verbose mode will be enabled.
- #
- def makedirs(*dirs)
- verbose = if dirs[-1].is_a? String then false else dirs.pop end
- mode = 0755
- for dir in dirs
- parent = dirname(dir)
- next if parent == dir or directory? dir
- makedirs parent unless directory? parent
- $stderr.print "mkdir ", dir, "\n" if verbose
- if basename(dir) != ""
- begin
- Dir.mkdir dir, mode
- rescue SystemCallError
- raise unless directory? dir
- end
- end
- end
- end
-
- alias mkpath makedirs
-
- alias o_chmod chmod
-
- vsave, $VERBOSE = $VERBOSE, false
-
- #
- # Changes permission bits on +files+ to the bit pattern represented
- # by +mode+. If the last parameter isn't a String, verbose mode will
- # be enabled.
- #
- # File.chmod 0755, 'somecommand'
- # File.chmod 0644, 'my.rb', 'your.rb', true
- #
- def chmod(mode, *files)
- verbose = if files[-1].is_a? String then false else files.pop end
- $stderr.printf "chmod %04o %s\n", mode, files.join(" ") if verbose
- o_chmod mode, *files
- end
- $VERBOSE = vsave
-
- #
- # If +src+ is not the same as +dest+, copies it and changes the permission
- # mode to +mode+. If +dest+ is a directory, destination is <tt>dest/src</tt>.
- # If +mode+ is not set, default is used. If +verbose+ is set to true, the
- # name of each file copied will be printed.
- #
- def install(from, to, mode = nil, verbose = false)
- to = catname(from, to)
- unless exist? to and cmp from, to
- safe_unlink to if exist? to
- cp from, to, verbose
- chmod mode, to, verbose if mode
- end
- end
-
-end
-
-# vi:set sw=2:
diff --git a/lib/parsedate.rb b/lib/parsedate.rb
deleted file mode 100644
index 675096d9f2..0000000000
--- a/lib/parsedate.rb
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# = parsedate.rb: Parses dates
-#
-# Author:: Tadayoshi Funaba
-# Documentation:: Konrad Meyer
-#
-# ParseDate munches on a date and turns it into an array of values.
-#
-
-#
-# ParseDate converts a date into an array of values.
-# For example:
-#
-# require 'parsedate'
-#
-# ParseDate.parsedate "Tuesday, July 6th, 2007, 18:35:20 UTC"
-# # => [2007, 7, 6, 18, 35, 20, "UTC", 2]
-#
-# The order is of the form [year, month, day of month, hour, minute, second,
-# timezone, day of the week].
-
-require 'date/format'
-
-module ParseDate
- #
- # Parse a string representation of a date into values.
- # For example:
- #
- # require 'parsedate'
- #
- # ParseDate.parsedate "Tuesday, July 5th, 2007, 18:35:20 UTC"
- # # => [2007, 7, 5, 18, 35, 20, "UTC", 2]
- #
- # The order is of the form [year, month, day of month, hour, minute,
- # second, timezone, day of week].
- #
- # ParseDate.parsedate can also take a second argument, +comp+, which
- # is a boolean telling the method to compensate for dates with years
- # expressed as two digits. Example:
- #
- # require 'parsedate'
- #
- # ParseDate.parsedate "Mon Dec 25 00 06:53:24 UTC", true
- # # => [2000, 12, 25, 6, 53, 24, "UTC", 1]
- #
- def parsedate(str, hints={})
- Date._parse(str, hints).
- values_at(:year, :mon, :mday, :hour, :min, :sec, :zone, :wday)
- end
-
- module_function :parsedate
-
-end
diff --git a/lib/rake.rb b/lib/rake.rb
index 799a1b2d88..b5924a1211 100755
--- a/lib/rake.rb
+++ b/lib/rake.rb
@@ -32,7 +32,6 @@
RAKEVERSION = '0.8.0'
require 'rbconfig'
-require 'ftools'
require 'getoptlong'
require 'fileutils'
require 'singleton'
diff --git a/lib/rdoc/generators/html_generator.rb b/lib/rdoc/generators/html_generator.rb
index 1f9b808e8d..4348703c30 100644
--- a/lib/rdoc/generators/html_generator.rb
+++ b/lib/rdoc/generators/html_generator.rb
@@ -34,7 +34,7 @@
# HTML is generated using the Template class.
#
-require 'ftools'
+require 'fileutils'
require 'rdoc/options'
require 'rdoc/template'
@@ -1025,7 +1025,7 @@ module Generators
def create_source_code_file(code_body)
meth_path = @html_class.path.sub(/\.html$/, '.src')
- File.makedirs(meth_path)
+ FileUtils.mkdir_p(meth_path)
file_path = File.join(meth_path, @seq) + ".html"
template = TemplatePage.new(RDoc::Page::SRC_PAGE)
@@ -1235,7 +1235,8 @@ module Generators
# directory structure
def gen_sub_directories
- File.makedirs(FILE_DIR, CLASS_DIR)
+ FileUtils.mkdir_p(FILE_DIR)
+ FileUtils.mkdir_p(CLASS_DIR)
rescue
$stderr.puts $!.message
exit 1
@@ -1289,7 +1290,7 @@ module Generators
list.each do |item|
if item.document_self
op_file = item.path
- File.makedirs(File.dirname(op_file))
+ FileUtils.mkdir_p(File.dirname(op_file))
File.open(op_file, "w") { |file| item.write_on(file) }
end
end
diff --git a/lib/rdoc/generators/ri_generator.rb b/lib/rdoc/generators/ri_generator.rb
index c7d0bbd8f0..bf22bc8dba 100644
--- a/lib/rdoc/generators/ri_generator.rb
+++ b/lib/rdoc/generators/ri_generator.rb
@@ -34,8 +34,6 @@
# HTML is generated using the Template class.
#
-require 'ftools'
-
require 'rdoc/options'
require 'rdoc/template'
require 'rdoc/markup/simple_markup'
diff --git a/lib/rdoc/generators/xml_generator.rb b/lib/rdoc/generators/xml_generator.rb
index 8c1a76d62b..561a9ad694 100644
--- a/lib/rdoc/generators/xml_generator.rb
+++ b/lib/rdoc/generators/xml_generator.rb
@@ -1,6 +1,4 @@
-require 'ftools'
-
require 'rdoc/options'
require 'rdoc/markup/simple_markup'
require 'rdoc/markup/simple_markup/to_html'
diff --git a/lib/rdoc/rdoc.rb b/lib/rdoc/rdoc.rb
index 91f5611196..af4a822da1 100644
--- a/lib/rdoc/rdoc.rb
+++ b/lib/rdoc/rdoc.rb
@@ -15,7 +15,7 @@ require 'rdoc/options'
require 'rdoc/diagram'
require 'find'
-require 'ftools'
+require 'fileutils'
require 'time'
# We put rdoc stuff in the RDoc module to avoid namespace
@@ -125,7 +125,7 @@ module RDoc
last = (Time.parse(created) unless force rescue nil)
end
else
- File.makedirs(op_dir)
+ FileUtils.mkdir_p(op_dir)
end
last
end
diff --git a/lib/shell/command-processor.rb b/lib/shell/command-processor.rb
index db1bce05a5..f5e8713c34 100644
--- a/lib/shell/command-processor.rb
+++ b/lib/shell/command-processor.rb
@@ -11,7 +11,6 @@
#
require "e2mmap"
-require "ftools"
require "thread"
require "shell/error"
@@ -589,24 +588,6 @@ class Shell
def_builtin_commands(FileTest,
FileTest.singleton_methods(false).collect{|m| [m, ["FILENAME"]]})
-# # method related ftools
-# normal_delegation_ftools_methods = [
-# ["syscopy", ["FILENAME_FROM", "FILENAME_TO"]],
-# ["copy", ["FILENAME_FROM", "FILENAME_TO"]],
-# ["move", ["FILENAME_FROM", "FILENAME_TO"]],
-# ["compare", ["FILENAME_FROM", "FILENAME_TO"]],
-# ["safe_unlink", ["*FILENAMES"]],
-# ["makedirs", ["*FILENAMES"]],
-# # ["chmod", ["mode", "*FILENAMES"]],
-# ["install", ["FILENAME_FROM", "FILENAME_TO", "mode"]],
-# ]
-# def_builtin_commands(File,
-# normal_delegation_ftools_methods)
-# alias_method :cmp, :compare
-# alias_method :mv, :move
-# alias_method :cp, :copy
-# alias_method :rm_f, :safe_unlink
-# alias_method :mkpath, :makedirs
end
end