将结果保存到Ruby文件中

时间:2017-06-11 15:41:49

标签: ruby

我的程序应该执行收到的示例代码,然后将结果保存回新文件。当执行的示例代码的结果是一个数字时,它可以工作,但是当它是一个字符串时,它不会将结果保存到文件中(它创建新文件,但其内容为空)。

如何保存所有类型?

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

谢谢:)

1 个答案:

答案 0 :(得分:0)

尝试使用以下内容将代码转换为proc:

@number = eval("Proc.new {#{@code}}")

然后使用file.puts(@number.call)

将其保存到文件中