Ruby 如何从erubis文件中获取变量名列表?

Ruby 如何从erubis文件中获取变量名列表?,ruby,erubis,Ruby,Erubis,在Ruby脚本中,有没有一种方法可以实用地获得在erubis文件中找到的所有预期变量名和函数名的列表 例如,如何从Eruby对象确定包含变量“name” require 'erubis' source = 'Hello, <%= name %>' erb = Erubis::Eruby.new(source) 需要“erubis” source='你好,' erb=Erubis::Eruby.new(源) 我的黑客解决方案: # from the original question

在Ruby脚本中,有没有一种方法可以实用地获得在erubis文件中找到的所有预期变量名和函数名的列表

例如,如何从Eruby对象确定包含变量“name”

require 'erubis'
source = 'Hello, <%= name %>'
erb = Erubis::Eruby.new(source)
需要“erubis”
source='你好,'
erb=Erubis::Eruby.new(源)
我的黑客解决方案:

# from the original question
require 'erubis'
source = 'Hello, <%= name %>'
erb = Erubis::Eruby.new(source)

# a not so great solution
vars = {}
begin
  Erubis::Eruby.new(code).result(vars)
rescue NameError => e
  puts "Found: '#{e.name}'"
  vars[e.name.to_sym] = nil
  retry
end

您是否尝试调用
实例变量
方法
?我尝试过,但没有发现任何有用的东西。我更新了原始问题,提供了一些示例源代码。这是一个很好的开始,但它不处理导致无限循环的方法。
Found: 'name'