Effective Rubyを読んでいます(5)

tl;dr

「Effective Ruby」の項目28から項目29まで読みました。

:arrow_down: 目次です。

  • 項目28 モジュール、クラスフックを使いこなそう
  • 項目29 クラスフックからはsuperを呼び出そう

新しく知ったこと

クラスフックする場合は、superを呼び出す(項目29)

クラスフックを利用する場合は、superを呼びすと良いことを知りました。 これは、サブクラスのフックがスーパークラスのフックをオーバライドするからです。

:arrow_down: の場合、ChildクラスがParentクラスのinheritedメソッドをオーバライドしていますが、superを忘れずに実装しています。

class Parent
  def self.inherited(subclass)
    # 処理をする
  end
end

class Child < Parent
  def self.inherited(subclass)
    super
    # 処理をする
  end
end

感想

項目28では、Class#inheritedModule#method_undefinedなど馴染みのないモジュール/クラスフックのメソッドが紹介されていました。 あまり内容が頭に入って来なかったので、第5章 メタプログラミングを読み終わった段階で読み返そうと思いました。