私はRubyにまったく慣れていないので、この質問がまだ他の場所で答えられていないことを願っています. しかし、私はこことインターネットでかなり長い間検索してきましたが、まだ結果はありません.
テキスト ファイルから一連のファイル パスを読み込んでいます。各ファイル パスには、いくつかの式 (つまり #{...} ) が文字列に埋め込まれています。例えば:
input = 'E:/files/storage/#{high_or_low}/#{left_or_right}/*.dll'
とにかく、それらの文字列を ruby コードであるかのように評価し、それらの式を置き換えたいと考えています。例えば:
def high_or_low
'low'
end
def left_or_right
'left'
end
# It represents a file path on the disk drive
input = 'E:/files/storage/#{high_or_low}/#{left_or_right}/*.dll'
puts input
# Now how do I execute this 'input' string so that it behaves as if it was defined with quotes?
result = eval input
puts result
元の入力文字列を意図的に一重引用符で囲んで、文字列がディスクから取り出されたときに、文字列に埋め込まれた式が未評価であることを示しています。では、これらの式で文字列を評価するにはどうすればよいでしょうか。上記のように eval を使用してもうまくいかないようです。次のエラーが表示されます。
test_eval.rb:15: compile error (SyntaxError)
test_eval.rb:15: syntax error, unexpected tIDENTIFIER, expecting $end
ありがとう