列出Ruby 2.3.1中的子类

丹尼尔·韦莱巴(Daniel Veleba)

我有以下方法来收集子类列表。由于各种原因,我无法使用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,但仍然想知道背后的原因。

谢谢!

恩德涅科夫

这是class对象的FairPlay::TLLV::ProtocolVersionsSupported该对象的ID为0x00000003566730 / 2

您是否正在尝试在此类实例上定义一种方法/您正在模拟一个方法?如果您不是或什至不知道该类/对象是什么,建议您在运行时对其进行跟踪。

它很可能与rspec有关,但是可能有很多事情。不是Ruby版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

列出项目符号,例如1)2)3)

Ruby中[1,2,3] .to_enum和[1,2,3] .enum_for之间的差异

如何在Ruby中将“ [1,2,3]”转换为[1,2,3]

AWS S3 + Ruby SDK:如何列出存储桶

使用 foreach (1 , 2 , 3 ...) 按升序列出循環

仅显示子查询中的1列:列出bran_name,谁的平均价格> = 3,并且至少具有2个不同的产品

在 Ruby On Rails CLI 中,如何列出辅助路径?

如何在Ruby中列出对象的所有方法?

Ruby-列出tar.gz档案中的文件

expr算术中的括号:3 *(2 +1)

Javascript中的Python x [1:2:3]?

在GitHub页面中列出子类别

MongoDB列出父类别中的子类别

在Python 3中向左列出旋转

在Z3中列出“包含”功能

sum =(1 ** 2)+(2 ** 2)-(3 ** 2)+(4 ** 2)-,...,+(n ** 2)Python中的程序代码

如果T2是.NET中的T1的子类型,为什么List <T2>不是List <T1>的子类型?

脚本中的“ 3>&1 1>&2 2>&3”是做什么的?

如何使查询在slick2中列出?

在 jinja2 模板列表中列出

无法使用ruby aws-sdk v2在S3中创建存储桶

我如何制作 `foo[1] ==1; 富[1][2]==3;foo[1][2][3]==6` 在 JavaScript 中工作?

MySQL中的JSON,返回1(共3个)部门,列出所有员工

我的全日历只列出了我有for循环的3个事件中的1个?

列出目录1中但不在目录2中的文件,反之亦然?

这是通过表2中的键从表1中列出数据的正确方法吗?(SQL)

Ruby on Rails 3中的InstallError

(((1 2)3)与((1 2)。3)相同吗?

为什么[1,1,2] | [] == [1,2]在Ruby中是否为true?