我在看着 红宝石混合 博客文章,它说当一个模块被包含在一个类中时 self.included()
方法被调用。
我的问题是,这种行为在哪里正式记录?我似乎无法在ruby-docs.org网站或镐上找到它。
我在看着 红宝石混合 博客文章,它说当一个模块被包含在一个类中时 self.included()
方法被调用。
我的问题是,这种行为在哪里正式记录?我似乎无法在ruby-docs.org网站或镐上找到它。
虽然它没有开启 Ruby Doc 因为某些原因, included
实际上有记录。运行 ri Module.included
在终端提供这个:
included( othermod )
只要接收器包含在另一个模块中,就会调用回调 或者上课。这应该优先使用
Module.append_features
如果您的代码想要在包含模块时执行某些操作 另一个。module A def A.included(mod) puts "#{self} included in #{mod}" end end module Enumerable include A end
这个文档可以在 Ruby源码 object.c
。可悲的是, Module.extended
没有记录。
虽然它没有开启 Ruby Doc 因为某些原因, included
实际上有记录。运行 ri Module.included
在终端提供这个:
included( othermod )
只要接收器包含在另一个模块中,就会调用回调 或者上课。这应该优先使用
Module.append_features
如果您的代码想要在包含模块时执行某些操作 另一个。module A def A.included(mod) puts "#{self} included in #{mod}" end end module Enumerable include A end
这个文档可以在 Ruby源码 object.c
。可悲的是, Module.extended
没有记录。
我怀疑它不在RubyDoc网站上,因为它是一个私有方法,并且当前没有显示私有方法。
人们都知道这个问题,但他们还没有找到如何处理私有方法,即使它们不是实现细节。
我在那里创建了一个错误报告 http://bugs.ruby-lang.org/issues/6381
似乎只记录了公共方法
两者都记录在第二版pickaxe的第556页(涵盖Ruby 1.8)。那里的文档看起来就像是结果 ri Module.included
安德鲁马歇尔发布,所以我怀疑这本书的部分是自动生成的。如果它已经从后来的镐头版本中删除,那么它可能是由于同一个错误导致它无法显示 ruby-doc.org。