From 3de996241b6f00b54e0e423f99d1fbbb43339b53 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 24 Jan 2018 07:15:55 +0000 Subject: dir.c: Dir#each_child * dir.c (dir_each_child_m): new instance methods Dir#each_child and Dir#children. [Feature #13969] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- dir.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'dir.c') diff --git a/dir.c b/dir.c index 26cc122d5b..71eb93516f 100644 --- a/dir.c +++ b/dir.c @@ -2859,6 +2859,13 @@ dir_s_each_child(int argc, VALUE *argv, VALUE io) return Qnil; } +static VALUE +dir_each_child_m(VALUE dir) +{ + RETURN_ENUMERATOR(dir, 0, 0); + return dir_each_entry(dir, dir_yield, Qnil, TRUE); +} + static VALUE dir_collect_children(VALUE dir) { @@ -3212,6 +3219,8 @@ Init_Dir(void) rb_define_method(rb_cDir,"inspect", dir_inspect, 0); rb_define_method(rb_cDir,"read", dir_read, 0); rb_define_method(rb_cDir,"each", dir_each, 0); + rb_define_method(rb_cDir,"each_child", dir_each_child_m, 0); + rb_define_method(rb_cDir,"children", dir_collect_children, 0); rb_define_method(rb_cDir,"rewind", dir_rewind, 0); rb_define_method(rb_cDir,"tell", dir_tell, 0); rb_define_method(rb_cDir,"seek", dir_seek, 1); -- cgit v1.2.3