2012-02-27 5 views
0
  1. 모듈에 속한 상수를 가져 오는 가장 짧은 방법은 무엇입니까 A? A.constants을 수행하면 A의 상수 배열이 아닌 A의 상수 기호로 된 이름의 배열을 제공합니다. 특히 ancestors을 사용하면 더 간단합니다. A.ancestors은 조상의 상징적 인 이름의 배열이 아닌 조상의 배열을 돌려줍니다.상수 및 서브 클래스 가져 오기

  2. B 클래스의 즉각적인 서브 클래스 배열을 가져 오는 가장 빠른 방법은 무엇입니까?

답변

1

을 감안할 때 :

class A;  end 
class A::B < A; end 
  1. 사용 const_get 기호로 모듈의 상수에 액세스 할 수 :

    A.constants.map { |constant| A.const_get constant } 
    # => [A::B] 
    
  2. 당신은 기존의 모든 클래스 중 하위 클래스를 검색 할 수

    :

    ObjectSpace.each_object(Class).select { |klass| klass.superclass == A } 
    # => [A::B] 
    ObjectSpace.each_object(Class).select { |klass| klass.superclass == A::B } 
    # => [] 
    
관련 문제