Un-include?


#1

I have this object which has “include” declared. I want to, in certain
situations, not have the include happen. I can turn it off with an
“if” or an “unless”, but is there any way to actually just yank the
include out, and with it any changes it made to the thing which
included it?

(I’m almost certain the answer’s no but it’d be pretty cool if I was
wrong.)


#2

Wow, that does sound evil. I’m actually thinking the whole thing can
be side-stepped. The module uses included to add methods to an object;
it may be cleaner just to write something which adds methods to
instances of the object as needed instead.


#3

Giles B. schrieb:

I have this object which has “include” declared. I want to, in certain
situations, not have the include happen. I can turn it off with an
“if” or an “unless”, but is there any way to actually just yank the
include out, and with it any changes it made to the thing which
included it?

Giles, it depends on what you’re willing to pay :slight_smile:

If you can change the code doing the “include”, there are libraries like
import-module (see the RAA) which let you do what you want.

If you can’t or don’t want to change the code with the “include”, I see
no other way than to directly access the internal structures of the Ruby
objects. This can be done using a little C extension, or with plain Ruby
code using techniques from the evil library (see RubyForge).

If you want to go one of these routes and need more info, please ask
again.

Regards,
Pit