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. 关于ruby,为什么包括private和extend是公共的?
- 3. 什么是包括用C
- 4. 什么是“#包括‘myfile.php’做
- 5. Ruby中chr()的反义词是什么?
- 6. 闭包的括号是什么意思?
- 7. 什么是正确的包括订单
- 8. 什么是BatchBlock相反块
- 9. 什么是相反的JavaScript匹配()
- 10. “git add”的相反命令是什么?
- 11. 202接受的相反是什么?
- 12. MATCH AGAINST的相反情况是什么?
- 13. SelectMany的相反之处是什么?
- 14. 继承的相反部分是什么?
- 15. tesselation的相反之处是什么?
- 16. “格式”的相反之处是什么?
- 17. 与void标签相反的是什么?
- 18. 与evt.preventDefault()相反的是什么?
- 19. TDD的相反之处是什么?
- 20. jQuery`.get()`的相反之处是什么?
- 21. forceActiveFocus的相反之处是什么?
- 22. Ruby中的不同括号是什么意思?
- 23. 在Ruby中,散列后跟矩形括号是做什么的?
- 24. 包括什么都不做
- 25. Gradle'build'任务包括什么
- 26. 我忘了包括什么?
- 27. Elixir的Ruby的__method__相当于什么?
- 28. Nokogiri的Ruby Hpricot是什么?
- 29. ruby_executable_hooks是做什么的?
- 30. Ruby的ThreadGroup是什么?
现在https://github.com/banister/mixology19 – 2012-05-10 03:04:28