Ruby の BasicObject

Ruby の BasicObject とはほぼ何も定義されていないクラスです。
Ruby はほぼすべてのクラスが Object クラスを継承しています。
なので最初からいくつかのメソッドが定義されていますが、意図的にメソッドを定義してほしくない場合にはこの BasicObject を継承します。

# Object のメソッドを定義してほしくない場合には
# BasicObject を継承する
class X < BasicObject
    def test
        
    end
end

puts X.instance_methods
# => test
# ==
# equal?
# !
# !=
# instance_eval
# instance_exec
# __send__
# __id__