Commit 7ff04945 authored by Paolo Bosetti's avatar Paolo Bosetti

Added File.foreach method.

Improved error management in File.new (Errno can be undefined)
parent d9f3fd86
......@@ -12,9 +12,17 @@ class File < IO
if fd_or_path.kind_of? Fixnum
super(fd_or_path, mode)
else
if Object.const_defined? :Errno
eclass = [Errno::ENOENT, Errno::ENFILE]
else
eclass = FileError
end
@path = fd_or_path
begin
fd = IO.sysopen(@path, mode, perm)
rescue RuntimeError => e
raise FileError, "Could not open file (#{e})"
rescue Errno::EMFILE, Errno::ENFILE
GC.start
fd = IO.sysopen(@path, mode, perm)
......@@ -119,6 +127,16 @@ class File < IO
end
end
def self.foreach(file)
if block_given?
self.open(file) do |f|
f.each {|l| yield l}
end
else
return self.new(file)
end
end
def self.directory?(file)
FileTest.directory?(file)
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment