我的程序应该执行收到的示例代码,然后将结果保存回新文件。当执行的示例代码的结果是一个数字时,它可以工作,但是当它是一个字符串时,它不会将结果保存到文件中(它创建新文件,但其内容为空)。
如何保存所有类型?
class ExecuteProgram
# opens recieved code and saves it to a variable
@code = File.open("files/prog.rb", "r"){ |file| file.read }
# executes recieved code
@number = eval(@code)
# saves result to file
def self.save_code(filename="result.rb")
directory_name = "result"
Dir.mkdir(directory_name) unless File.exists?(directory_name)
file = File.new(directory_name + "/" + filename, "w")
file.puts(@number)
file.close
puts @number
end
ExecuteProgram.save_code("result.rb")
end
谢谢:)
答案 0 :(得分:0)
尝试使用以下内容将代码转换为proc:
@number = eval("Proc.new {#{@code}}")
然后使用file.puts(@number.call)