From 7752fb4205ecf5de2021a7924c213516c8a8d858 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 6 May 2003 06:51:31 +0000 Subject: * object.c (rb_obj_methods): list singleton methods if recur argument is false; list all methods otherwise. * numeric.c (num_step): double epsilon to make "1.1.step(1.5,0.1)" to work. * ext/gdbm/gdbm.c (fgdbm_values_at): new method to replace select(index..). * ext/sdbm/init.c (fsdbm_values_at): ditto. * ext/dbm/dbm.c (fdbm_values_at): ditto. * ext/dbm/dbm.c (DBM::VERSION): defined. * ext/gdbm/testgdbm.rb: replace select with values_at. * ext/sdbm/testsdbm.rb: ditto. * ext/dbm/testdbm.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- object.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'object.c') diff --git a/object.c b/object.c index 1bbcd5f2ca..49e7347ee0 100644 --- a/object.c +++ b/object.c @@ -904,13 +904,23 @@ rb_obj_methods(argc, argv, obj) VALUE *argv; VALUE obj; { + retry: if (argc == 0) { VALUE args[1]; args[0] = Qtrue; return rb_class_instance_methods(1, args, CLASS_OF(obj)); } - return rb_class_instance_methods(argc, argv, CLASS_OF(obj)); + else { + VALUE recur; + + rb_scan_args(argc, argv, "1", &recur); + if (RTEST(recur)) { + argc = 0; + goto retry; + } + return rb_obj_singleton_methods(argc, argv, obj); + } } static VALUE -- cgit v1.2.3