ruby mixinのブログ投稿を見ていましたが、モジュールがクラスに含まれると、そのself.included()
メソッドが呼び出されると書かれています。
私の質問は、この動作が公式に文書化されている場所はどこですか? ruby-docs.org の Web サイトやつるはしで見つけられないようです。
ruby mixinのブログ投稿を見ていましたが、モジュールがクラスに含まれると、そのself.included()
メソッドが呼び出されると書かれています。
私の質問は、この動作が公式に文書化されている場所はどこですか? ruby-docs.org の Web サイトやつるはしで見つけられないようです。
なぜか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 Web サイトにはないと思われます。
人々はこの問題を認識していますが、実装の詳細ではないにもかかわらず、プライベートなメソッドを処理する方法をまだ解決していません。
http://bugs.ruby-lang.org/issues/6381にバグレポートを作成しました
どちらも、pickaxeの第2版(Ruby 1.8を対象)の556ページに記載されています。そこにあるドキュメントはri Module.included
、Andrew Marshallが投稿した結果とまったく同じように見えるので、本のセクションが自動的に生成されたのではないかと思います。それがpickaxeの新しいエディションから削除された場合、それはruby-doc.orgに表示されないのと同じバグの結果である可能性があります。
パブリックメソッドのみが文書化されているようです