Ruby特異クラス/特異メソッド - Silver/Gold試験対策
初期化をせずとも、クラスから直接メソッドを実行できる、クラスメソッド 初期化したクラスに、改めてメソッドを付けたりもできる、特異メソッド。 両者とも、特異メソッドの一形態。
class A class << self def hoge :hoge end end end p A.hoge #=> :hoge p A.class.method_defined?(:hoge) p A.singleton_class.method_defined?(:hoge) # 特異クラスは、class Aのサブクラス p A.singleton_class #=> A p A.singleton_class.superclass #=> Object class B def B.bar :bar end def self.fuga :fuga end end p B.bar #=> :bar p B.fuga #=> :fuga C = Object.new class << C def foo :foo end end p C.foo class F end f = F.new def f.baz :baz end p f.baz #=> :baz