uninclude gem v1.0.0
uninclude という gem を公開しました。
初めての C 拡張 gem でドキドキしています。
uninclude はその名の通り、 Module#include をなかったことにするための gem です。Module#include は Module#uninclude で取り消し、Object#extend も Object#unextend で取り消せます。
同じような目的のライブラリに seattlerb/un というのがあって、これは RubyInline を使って実装されているのですが、 Ruby 2.0.0 で動かなかったです。
他にも include を取り消す C 拡張のコード片とかはネットにちらほら転がっていたのですが、そのままだと Ruby 1.8.7 で動かないとかの問題があったので、 Ruby 1.8.7 でも動くようにしたりとかしました。
現状 Travis-CI でテストしている Ruby のバージョンは 2.0.0 / 1.9.3 / 1.9.2 / 1.8.7 / REE です。
これで DCI にまた一歩近づきましたね。
追記
@rosylilly github.com/ruby/ruby/blob… ご存知とは思いますが deprecated なんでそのうち使えなくなりますね。
— そらは (@sora_h) March 17, 2013
Ruby 的にはこういうのあんまりよくないみたいなので、今後使えなくなる gem である可能性があります。