I’m doing an online-judge application and I wish to run a ruby script (or a c++, java, etc program) from a controller, save the output in a variable and compare it to a test file I have in my database.
I’m stuck with running the program and checking the answer it sends to standard output. I’ve tried answer = load path, (being “path” a variable with the path of the script) but that returns “true” instead of the stdout content; and answer = `ruby path` but it doesn’t recognize the path variable.
Thanks for your time in advance.
Try this:
system("ruby #{path}"), but be careful not to pass any user-submitted information to the path variable (or at least sanitize it thoroughly), as this can pose extremely serious security risk.