すいません質問です

Ruby で外部コマンドの stdout, stderr, $? を
それぞれ分けて Ruby のプログラム内に取り込みたいのですが
どうやるのが定石なんでしょうか?