16
A
回答
4
嘗試http://github.com/yrashk/rbmodexcl,它爲您提供了一個unextend
方法。
5
不可以。您不能在Ruby 語言中取消混入mixin。在一些紅寶石實現上,你可以通過在C或Java(甚至Rubinius的情況下甚至是Ruby)編寫實現特定的擴展來實現。
6
這不是真的同樣的事情,但你可以僞造它是這樣的:
module A
def hello
puts "hi!"
end
end
class B
include A
end
class C
include A
end
B.new.hello # prints "Hi!"
class Module
def uninclude(mod)
mod.instance_methods.each do |method|
undef_method(method)
end
end
end
class B
uninclude A
end
B.new.hello rescue puts "Undefined!" # prints "Undefined!"
C.new.hello # prints "Hi!"
這在通常情況下工作,但它可以咬你在更復雜的情況,像在那裏該模塊將自己插入到繼承鏈中,或者您有其他模塊提供的方法名稱相同,但您仍然希望能夠調用該方法。您還需要手動取消Module.included?(klass)
所做的任何操作。
2
使用調酒C擴展(用於MRI和YARV):http://www.somethingnimble.com/bliki/mixology
1
如果您已經include
-ed的東西,你可以用load
重新包含的文件。 load
-ed文件中的任何定義都將覆蓋現有的方法。
0
相關問題
- 1. OnSetActive()的「相反」是什麼?
- 2. CoCreateInstance - 什麼是相反的?
- 3. 關於ruby,爲什麼包括private和extend是公共的?
- 4. 在Ruby中追加什麼是相反的? <<
- 5. 什麼是包括用C
- 6. 什麼是「#包括‘myfile.php’做
- 7. Ruby中chr()的反義詞是什麼?
- 8. Rails的,什麼是包括的回調
- 9. 什麼是Ruby相當於PHP的的=
- 10. 什麼是BatchBlock相反塊
- 11. 閉包的括號是什麼意思?
- 12. 什麼是正確的包括訂單
- 13. 與evt.preventDefault()相反的是什麼?
- 14. 「格式」的相反之處是什麼?
- 15. 「git add」的相反命令是什麼?
- 16. SelectMany的相反之處是什麼?
- 17. 與void標籤相反的是什麼?
- 18. ETL的相反之處是什麼?
- 19. now.date.addDays的相反之處是什麼?
- 20. Notepad ++:什麼是JSFormat的「相反」格式?
- 21. jQuery`.get()`的相反之處是什麼?
- 22. 什麼是相反的JavaScript匹配()
- 23. 「Parser」的相反詞是什麼?
- 24. MATCH AGAINST的相反情況是什麼?
- 25. 202接受的相反是什麼?
- 26. 與hasFields相反的是什麼?
- 27. 繼承的相反部分是什麼?
- 28. TDD的相反之處是什麼?
- 29. tesselation的相反之處是什麼?
- 30. forceActiveFocus的相反之處是什麼?
現在https://github.com/banister/mixology19 – 2012-05-10 03:04:28