[macruby-changes] [3186] MacRuby/trunk/eval.c
source_changes at macosforge.org
source_changes at macosforge.org
Mon Jan 4 14:42:37 PST 2010
Revision: 3186
http://trac.macosforge.org/projects/ruby/changeset/3186
Author: lsansonetti at apple.com
Date: 2010-01-04 14:42:37 -0800 (Mon, 04 Jan 2010)
Log Message:
-----------
#extend_object: honor nested modules
Modified Paths:
--------------
MacRuby/trunk/eval.c
Modified: MacRuby/trunk/eval.c
===================================================================
--- MacRuby/trunk/eval.c 2010-01-04 22:17:59 UTC (rev 3185)
+++ MacRuby/trunk/eval.c 2010-01-04 22:42:37 UTC (rev 3186)
@@ -582,8 +582,22 @@
}
else {
klass = rb_singleton_class(obj);
- }
+ }
+
rb_include_module(klass, module);
+
+ VALUE m = module;
+ do {
+ VALUE ary = rb_attr_get(m, idIncludedModules);
+ if (ary != Qnil) {
+ for (int i = 0, count = RARRAY_LEN(ary); i < count; i++) {
+ VALUE mod = RARRAY_AT(ary, i);
+ rb_extend_object(obj, mod);
+ }
+ }
+ m = RCLASS_SUPER(m);
+ }
+ while (m == 0 || RCLASS_SINGLETON(m));
}
/*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100104/2aeef1ec/attachment.html>
More information about the macruby-changes
mailing list