Rubyのモジュールでnewを使う方法
タイトルは半分くらい釣りです。役に立たないRuby雑学です。
コード例
モジュールで self.new
を定義すると、モジュールに対してnewが呼べる。
class A end module M def self.new A.new end end p M.new.class #=> A
別のクラスのインスタンスを返すクラス
同じようにクラスで self.new
を定義しておけば、別のクラスのインスタンスを返すことも可能になる。
class A end class B def self.new A.new end end p B.new.class #=> A
読みづらいので、こんなコードは書いたらダメです。絶対にダメですよ!