Slide 14
Slide 14 text
And create and prepend module in C method call
to wrap any methods.
mod_name = rb_mod_name(mod);
extensions = rb_ivar_get(rb_mBindingNinja,
rb_intern("@auto_inject_binding_extensions"));
ext_mod = rb_hash_aref(extensions, mod_name);
if (ext_mod == Qnil) {
ext_mod = rb_module_new();
rb_hash_aset(extensions, mod_name, ext_mod);
}
if (rb_mod_include_p(mod, ext_mod) == Qfalse) {
rb_prepend_module(mod, ext_mod);
}
rb_define_method_id(ext_mod, SYM2ID(method_sym),
auto_inject_binding_invoke, -1);