Extend.rb
This content was produced by an LLM and could include errors.
このスクリプトは extend による特異クラスへのミックスインです。モジュールBがモジュールAを extend すると、A の attr_accessor :abc がBの特異メソッドとして生え、B.abc = 123 / B.abc というモジュール単位の読み書き(実体はBオブジェクトの@abc)が可能になります。クラスメソッド的なDSLを作る基礎テクニックで、include との違い(オブジェクト単位 vs クラス単位)を理解するのに適しています。
# frozen_string_literal: true
#=> nil
module A
attr_accessor :abc
end
#=> [:abc, :abc=]
module B
extend A
end
#=> B
B.abc = 123
#=> 123
B.abc
#=> 123
Ruby 4.0.6