Object#singleton_class で定数を参照する

2024-09-23

定数の参照の仕方がわからなかった…が助けてもらった解答

ある gem のコードを読んでいて、以下のような定数を宣言しているコードがあったが、外側から B にアクセスする方法がパッと出てこなかった。 社の Slack に助けてーって投げたら解答が返ってきたので記録しておく。

class A
  class << self
    B = 1
  end
end

A::singleton_class::B #=> 1
A.sigleton_class.const_get(:B) #=> 1

Object#singleton_class はパッと出てこなかった。字面みたらせやなってなるので、修行が足りない。 https://docs.ruby-lang.org/ja/latest/method/Object/i/singleton_class.html