Charles E. Thornton wrote: > Nikolai Weibull wrote: > >> Charles E. Thornton wrote: >> >> >> >>> Several Different references to 'noex' >>> rb_add_method(klass, name, NEW_CFUNC(func,argc), NOEX_PUBLIC); >>> (noex == NOEX_PUBLIC) >>> noex = NOEX_PRIVATE | noex; >>> NOEX_WITH_SAFE(noex) >>> >> >> >> NOEX_PUBLIC seems to be the flag for saying that a method is public, >> just as NOEX_PRIVATE and NOEX_PROTECTED say that it is private and >> protected. But that seems obvious, so perhaps I don't understand your >> question (or I don't understand the flag correctly ;-). >> >> nikolai >> >> >> > That's what I thought --- But I wanted to make sure -- I am trying to > translate the > Hackers Guide and it tends to be more of a job of researching each > heading from > scratch -- Thank you. > > chuck > > I looked further: if (SCOPE_TEST(SCOPE_PRIVATE) || node->nd_mid == init) { noex = NOEX_PRIVATE; } else if (SCOPE_TEST(SCOPE_PROTECTED)) { noex = NOEX_PROTECTED; } else { noex = NOEX_PUBLIC; } UP TO HERE -- OK if (body && origin == ruby_class && body->nd_body == 0) { noex |= NOEX_NOSUPER; } What does NOEX_NOSUPER Represent? defn = copy_node_scope(node->nd_defn, ruby_cref); rb_add_method(ruby_class, node->nd_mid, defn, noex); HERE I get confused AGAIN -- We have already ADDED THE METHOD and now WE ADD a second one? What is SCOPE_MODFUNC represent? if (scope_vmode == SCOPE_MODFUNC) { rb_add_method(rb_singleton_class(ruby_class), node->nd_mid, defn, NOEX_PUBLIC); } -- GodFather -- 667 Neighbor of the Beast