Search code examples
rubyoperating-systemcloudsandbox

How to execute a Ruby code from inside a Ruby script?


I'm trying to execute a Ruby script file. Assuming the input is a string that contains the file content. What are the possible ways? taking into considerations that I need to keep the output of the executed file whether stdout or not separated from the Main script.

As an example of what I'm trying to do is have a function called execute(code)

Then calling execute('4 + 5') would return 9 although I can write a whole Ruby script in the place of '4 + 5'.

If anyone can forward me to any related tutorials or books, I'd be thankful :)


Solution

  • You can call shell commands in Ruby, it's as simple and intuitive as surrounding your desired command in backticks.

    The output gets returned, so just save it to a variable:

    script1.rb:

    puts "asdf"
    

    script2.rb:

    output = `ruby script1.rb`    
    puts output
    
    "asdf"
    

    I question what exactly it is you're trying to do, though. Because this is totally unintuitive and roundabout. Are you sure you aren't just looking for a module or something?