Как получить список имен переменных из файла erubis?
Из сценария Ruby существует ли способ прагматически получить список всех ожидаемых имен переменных и функций, найденных в файле erubis?
Например, как определить из объекта Eruby, что он содержит переменную name?
require 'erubis'
source = 'Hello, <%= name %>'
erb = Erubis::Eruby.new(source)
1 ответ
Решение
Мое хакерское решение:
# 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'