インスタンス化されたすべてのサブクラス オブジェクトをスーパー内の配列で追跡して、スーパーからメソッドを呼び出してそれらを反復処理できるようにしようとしています。私はほとんどそこにいると思いますが、何が欠けているのかわかりません。現在、super.my_array を呼び出すと、空の配列しか返されないため、初期化メソッドに何か問題があるはずです。これは私がこれまでに持っている抽象化されたバージョンです:
class Klass
attr_reader :my_array
@@my_array = []
def initialize
@@my_array << self if super.class == Klass
end
def self.iterate_over_sub
@@my_array.each { |x| x.sub_method }
end
def sub_method
puts "#{self.class} is being called by super"
end
end