1

Rubyスクリプト内から、erubisファイルで見つかったすべての予想される変数名と関数名のリストを実用的に取得する方法はありますか?

たとえば、Eruby オブジェクトから、変数「name」が含まれていることをどのように判断するのでしょうか?

require 'erubis'
source = 'Hello, <%= name %>'
erb = Erubis::Eruby.new(source)
4

1 に答える 1

0

私のハックな解決策:

# 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'
于 2013-02-08T15:09:14.467 に答える