最近のルビーfor Rails読書ノート


1,moduleのmix-in
2つのmoduleは同じメソッドを定義し、いずれもinclude後、後includeのmoduleのメソッドが有効です.
2、グローバル変数は$で始まる
Rubyが持つグローバル変数は
$:あなたがload外部ファイルを検索したときにRubyが検索したpathを表します.
$$はRubyプロセスIDを表します
3,selfの指代

Context                         Example                               Which object is self?
Top level of program   Any code outside of other blocks        main(built-in top-level default object)
Class definition       class C                                 The class object C
Module definition      module M                                The module object M
Method definitions     1. Top level                            main(built-in top-level default object)
                          def method_name
                       2. Instance method definition           An instance of C, responding to method_name
                          class C
                            def method_name
                       3. Instance method definition in module I. Individual object extended by M
                          module M                             II. Instance of class that mixes in M
                            def method_name
                       4. Singleton method(including class     obj
                          methods)
                          def obj.method_name

4,Rubyビルトインクラスと重複するクラスを定義する場合,たとえばViolin::Stringを定義する場合,我々はViolinでRubyビルトインのStringクラスを呼び出す場合に,::Stringを用いる.
5,Rubyの3つの役割ドメイン、public/protected/private、デフォルトはpublic
privateメソッドではexplicit receiverは使用できません.implicit receiver selfでのみ呼び出されます.method_名前ではなくobj.method_name
protectedメソッドの呼び出しはselfのclassと呼び出された別のオブジェクトのclassが同じであることを保証する
6,top-levelメソッドはKernelモジュールのprivate instance methods