是否可以在给定Ruby文件的情况下获取模块名称

时间:2018-03-22 01:36:32

标签: ruby

我写了一个Ruby文件my.rb,它有一个模块定义:

module MyModule
  ...
end

另一个Ruby脚本需要动态my.rb,我想动态获取my.rb中定义的模块名称。有可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用TracePoint执行此操作:

# :class is the start of a class or module definition
TracePoint.new(:class) do |trace|
  puts "defined a class or module named: #{trace.self}"
end.enable do
  require './my'
end

运行此脚本时,将输出:

  

定义了一个名为MyModule

的类或模块

只有在enable块中定义的类才能获得输出