Forum: Ruby un-include?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Giles B. (Guest)
on 2007-02-21 01:16
(Received via mailing list)
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.)
Pit C. (Guest)
on 2007-02-22 08:48
(Received via mailing list)
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 :-)

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
Giles B. (Guest)
on 2007-02-22 10:37
(Received via mailing list)
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.
This topic is locked and can not be replied to.