Canalizaciones Marshal (Ruby): envío de objetos serializados a procesos secundarios

Necesito serializar un objeto en Ruby con Marshal y enviarlo a un subproceso a través de tuberías. ¿Cómo puedo hacer esto?

Mi código es similar al siguiente, y mis preguntas están en comentarios:

data = Marshal.dump(data)
#call sub-process
`ruby -r a_lib -e 'a_method'` #### how to send the stdout to the subprocess?

Y el método a_ se ve así:

def a_method
  ...
  data = Marshal.load(data) #### how to load the stdout of the parent process?
  ...
end

Respuestas a la pregunta(2)

Su respuesta a la pregunta