From 12030b3f4139a646751c153723b66aeecf0a4aed Mon Sep 17 00:00:00 2001 From: dearblue Date: Fri, 10 May 2024 21:54:59 +0900 Subject: [PATCH] Fixes `Dir.children` and `Dir.each_child` The two methods exclude "." and "..". --- mrbgems/mruby-dir/mrblib/dir.rb | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/mrbgems/mruby-dir/mrblib/dir.rb b/mrbgems/mruby-dir/mrblib/dir.rb index 5f4742be0..0d5b189ff 100644 --- a/mrbgems/mruby-dir/mrblib/dir.rb +++ b/mrbgems/mruby-dir/mrblib/dir.rb @@ -8,7 +8,13 @@ class Dir self end - alias each_child each + def each_child(&block) + while s = self.read + block.call(s) unless s == "." || s == ".." + end + self + end + alias pos tell alias pos= seek @@ -22,7 +28,16 @@ class Dir end a end - alias children entries + + def children(path) + a = [] + self.open(path) do |d| + while s = d.read + a << s unless s == "." || s == ".." + end + end + a + end def foreach(path, &block) self.open(path) do |d|