diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-12-04 15:19:33 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-12-04 15:19:33 +0000 |
| commit | acb949ff5ab95773175661de319fd1ab8af78330 (patch) | |
| tree | 9041f38521e1caf750aae67f0930686778c89c97 /eval.c | |
| parent | d8a9c4e13ab1715609457fa960d7dd9a7c1439ce (diff) | |
| download | ruby-acb949ff5ab95773175661de319fd1ab8af78330.tar.gz ruby-acb949ff5ab95773175661de319fd1ab8af78330.tar.xz ruby-acb949ff5ab95773175661de319fd1ab8af78330.zip | |
* intern.h, object.c, variable.c (rb_mod_constants): added an optional
flag to search ancestors, which is defaulted to true, as well as
const_defined? and const_get. [ruby-dev:29989]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
| -rw-r--r-- | eval.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -1906,11 +1906,15 @@ rb_mod_nesting(void) */ static VALUE -rb_mod_s_constants(void) +rb_mod_s_constants(int argc, VALUE *argv, VALUE mod) { NODE *cbase = ruby_cref; void *data = 0; + if (argc > 0) { + return rb_mod_constants(argc, argv, rb_cModule); + } + while (cbase) { if (!NIL_P(cbase->nd_clss)) { data = rb_mod_const_at(cbase->nd_clss, data); @@ -7952,7 +7956,7 @@ Init_eval(void) rb_define_private_method(rb_cModule, "define_method", rb_mod_define_method, -1); rb_define_singleton_method(rb_cModule, "nesting", rb_mod_nesting, 0); - rb_define_singleton_method(rb_cModule, "constants", rb_mod_s_constants, 0); + rb_define_singleton_method(rb_cModule, "constants", rb_mod_s_constants, -1); rb_define_singleton_method(ruby_top_self, "include", top_include, -1); rb_define_singleton_method(ruby_top_self, "public", top_public, -1); |
