1
在Ruby腳本中,是否有一種方法可以實際獲取erubis文件中找到的所有預期變量名稱和函數名稱的列表?如何從erubis文件獲取變量名稱列表?
例如,如何從Eruby對象確定包含變量'name'?
require 'erubis'
source = 'Hello, <%= name %>'
erb = Erubis::Eruby.new(source)
在Ruby腳本中,是否有一種方法可以實際獲取erubis文件中找到的所有預期變量名稱和函數名稱的列表?如何從erubis文件獲取變量名稱列表?
例如,如何從Eruby對象確定包含變量'name'?
require 'erubis'
source = 'Hello, <%= name %>'
erb = Erubis::Eruby.new(source)
我hackish的解決方案:
# 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'
良好的開端,但它不處理導致無限循環的方法。 – scarver2
你嘗試調用'''instance_variables'''或'''methods'''? – phoet
我嘗試過,但沒有注意到任何有用的東西。我更新了原始問題以提供一些示例源代碼。 – sutch