如何检查所有课程或使用课程?

时间:2012-10-17 22:16:38

标签: ruby

  

可能重复:
  Look up all descendants of a class in Ruby

所以,让我们说我们有:

class LivingBeing
  class Animal
  end

  class Bacteria
  end

  class Virus
  end
end

class Fungi < LivingBeing
end

如何检查LivingBeing的子类?我知道我们有Klass.ancestors但是看到与祖先相反的方法是什么?

1 个答案:

答案 0 :(得分:3)

核心Ruby语言没有内置任何你想做的事情 - 你需要自己编写。这是一个示例方法subclasses_of(class_name_here)(下面),它将为您返回特定类的子类列表:

class Mammal
end

class Human < Mammal
end

class Dog < Mammal
end

def subclasses_of input
  ObjectSpace.each_object(Class).select { |klass| klass < input }
end

subclasses_of(Mammal)
 #=> [Human, Dog]
是的,这里有一个问题的答案:

http://dzone.com/snippets/objectsubclasses