ruby でクラスに所属するメソッドを呼び出す。
クラスに所属するStaticなメソッドを呼び出したときに、クラス名を直接指定するのは不便だよね。
class A def self.do puts :do end def say A.do # クラス名が・・・ end end a = A.new a.say
self で参照する
self.class で参照すると楽ですね。
self.class.do
ついでに send も取り入れるともっと楽かも?
Object.send でメソッド名を sym か str で指定できるので、そっちを使っても便利かもしれない。
class A def self.do puts :do end def say self.class.send(:do) end end a = A.new a.say
これで、むやみにインスタンスメソッドを生やさなくて済む。インスタンスメソッドは「インスタンス」を扱うようにしたいよねやっぱり。インスタンスが無くても動くような処理はクラス・メソッドに登録しておくと使い方を変えられるので意図が明確になる気がする。