Files
mruby-mruby/mrblib/dir.rb
T
2013-11-16 14:37:21 +09:00

65 lines
1010 B
Ruby

class Dir
def each(&block)
while s = self.read
block.call(s)
end
self
end
alias pos tell
alias pos= seek
def self.entries(path)
a = []
self.open(path) { |d|
while s = d.read
a << s
end
}
a
end
def self.foreach(path, &block)
if block
self.open(path).each { |f| block.call(f) }
else
self.open(path).each
end
end
def self.open(path, &block)
if block
d = self.new(path)
begin
block.call(d)
ensure
d.close
end
else
self.new(path)
end
end
def self.chdir(path, &block)
my = self # workaround for https://github.com/mruby/mruby/issues/1579
if block
wd = self.getwd
begin
self._chdir(path)
block.call(path)
ensure
my._chdir(wd)
end
else
self._chdir(path)
end
end
class << self
alias exists? exist?
alias pwd getwd
alias rmdir delete
alias unlink delete
end
end