runtime/io_popen_argv.rb

tests/_examples/runtime/io_popen_argv.rb in the metorex repository.

require "rbconfig"

interpreter = RbConfig.ruby

output = IO.popen([interpreter, "-n", "-e", 'print "got: ", $_'], "r+") do |io|
  io.puts "a line"
  io.close_write
  io.read
end
puts output

second = IO.popen([interpreter, "-e", 'print "no input"'], "r+") do |io|
  io.close_write
  io.read
end
puts second
puts $?.exitstatus

Output:

got: a line
no input
0