2

サブクラスのリストを収集する次のメソッドがあります。さまざまな理由で、 ActiveSupport を使用できませんDescendantsTracker

def self.descendants
  unless @subclasses
    @subclasses = []
    ObjectSpace.each_object(Class) do |subclass|
      if subclass < self # && other conditions
        @subclasses << subclass.to_s.split('::').last
      end
    end
  end
  @subclasses
end

ruby 2.3.1 へのアップグレード (これは関係ないかもしれませんが) で、リストには次のように以前は見られなかった値も断続的に含まれるようになりました。

"#<Class:#<FairPlay::TLLV::ProtocolVersionsSupported:0x00000003566730>>"

最初の質問は、これが何を意味するのかということです。最初のポインタに感謝します。

間欠性について - これはテスト (RSpec) でのみ発生し、テストケースが個別に実行されていない場合にのみ発生します。だから私はRSpecを疑っていますが、それでも背後にあるものを知りたいです.

ありがとう!

4

1 に答える 1