相关疑难解决方法(0)

查找模块中可用的类

我有一个模块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
Run Code Online (Sandbox Code Playgroud)

我应该说每个都f包含类似"类Foo;结束"的内容.

您也可以这样想:在Rails中,我如何以编程方式查找ActiveRecord模块中定义的所有类?

ruby metaprogramming

70
推荐指数
1
解决办法
3万
查看次数

如何递归地找到模块中的所有模块和类?

如果你有:

module A
  class B
  end
end
Run Code Online (Sandbox Code Playgroud)

你可以通过A.constants找到B和类似的类.但是,在Ruby 1.9.3中,如果它在另一个模块中,则无法获得B. 在Ruby 1.8.7中你可以.

module A
  module Aa
    class B
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

你怎么从A的第一级获得B?我想输出的是一个常量数组,其中包括所有类,如B,但在模块A中的任何位置.

ruby

7
推荐指数
1
解决办法
3584
查看次数

标签 统计

ruby ×2

metaprogramming ×1