/* * call-seq: * mod.class_variables => array * * Returns an array of the names of class variables in <i>mod</i> and * the ancestors of <i>mod</i>. * * class One * @@var1 = 1 * end * class Two < One * @@var2 = 2 * end * One.class_variables #=> ["@@var1"] * Two.class_variables #=> ["@@var2", "@@var1"] */ VALUE rb_mod_class_variables(obj) VALUE obj; { VALUE ary = rb_ary_new(); for (;;) { if (RCLASS(obj)->iv_tbl) { st_foreach_safe(RCLASS(obj)->iv_tbl, cv_i, ary); } obj = RCLASS(obj)->super; if (!obj) break; } return ary; }