Programing

모듈에서 사용 가능한 클래스 찾기

crosscheck 2020. 11. 5. 07:43
반응형

모듈에서 사용 가능한 클래스 찾기


모듈이 MyModule있습니다. 클래스를 동적으로로드합니다. 네임 스페이스 내에 정의 된 클래스 목록을 얻으려면 어떻게해야합니까?

예:

def load_plugins
  Dir.glob(File.dirname(__FILE__) + '/plugins/*.rb') do |f|
    MyModule.class_eval File.read(f)
  end

  # now how can I find the new classes I've loaded into MyModule?
end

나는 각각 f"class Foo; end"와 같은 것을 포함 한다고 말해야한다 .

또한 다음과 같이 생각할 수 있습니다. Rails에서 ActiveRecord 모듈 내에 정의 된 모든 클래스를 프로그래밍 방식으로 어떻게 찾을 수 있습니까?


상수를 통해 클래스에 액세스합니다. 모듈 내에 정의 된 클래스는 해당 모듈에서 상수로 나열됩니다. 따라서 클래스를 참조하는 상수를 선택하기 만하면됩니다.

MyModule.constants.select {|c| MyModule.const_get(c).is_a? Class}

참고 URL : https://stackoverflow.com/questions/833125/find-classes-available-in-a-module

반응형