💎

Ruby 3.2 - Module

2022/12/17に公開

Ruby 3.2 アドベントカレンダーの17日目の記事です。

https://qiita.com/advent-calendar/2022/ruby32


Module

Module#const_added

Feature #17881: Add a Module#const_added callback - Ruby master - Ruby Issue Tracking System

Module#const_added が追加された。定数が追加されたときに実行されるメソッド。
モジュールやクラスが追加されたときも実行される。

module Hoge
  def self.const_added(const)
    puts "#{const.inspect} is added"
  end
end

Hoge::CONST = 1
#=> :CONST is added

class Hoge::Fuga
end
#=> :Fuga is added

Module#undefined_instance_methods

Feature #12655: Accessing the method visibility - Ruby master - Ruby Issue Tracking System

Module#undefined_instance_methods が追加された。undef されたメソッドの一覧が返る。

class Hoge
  def hoge
  end
end
Hoge.undefined_instance_methods  #=> []

class Hoge
  undef hoge
end
Hoge.undefined_instance_methods  #=> [:hoge]

Discussion