ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ???????????????????????????????????? ???????????????????????????????????? ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ÿØÿà JFIF    ÿÛ „  ( %!1!%)+//.383,7(-.+  -%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ     ÿÄ J    ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ   ÿÄ *  !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú "SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5 ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍѶ¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e ríV ?> ......................................... ............................................................................. ???????????????????????????????????? ???????????????????????????????????? U:RDoc::AnyMethod[iI"pipeline_r:ETI"Open3::pipeline_r;TT: publico:RDoc::Markup::Document: @parts[#o:RDoc::Markup::Paragraph; [I"Basically a wrapper for ;TI"-{Process.spawn}[rdoc-ref:Process.spawn] ;TI" that:;To:RDoc::Markup::BlankLineo:RDoc::Markup::List: @type: BULLET: @items[o:RDoc::Markup::ListItem: @label0; [o; ; [I":Creates a child process for each of the given +cmds+ ;TI"by calling Process.spawn.;To;;0; [o; ; [I"JPipes the +stdout+ from each child to the +stdin+ of the next child, ;TI"6or, for the last child, to the caller's +stdout+.;T@o; ; [I";The method does not wait for child processes to exit, ;TI"so the caller must do so.;T@o; ; [I"?With no block given, returns a 2-element array containing:;T@o; ; ;;[o;;0; [o; ; [I"3The +stdout+ stream of the last child process.;To;;0; [o; ; [I"AAn array of the wait threads for all of the child processes.;T@o; ; [I" Example:;T@o:RDoc::Markup::Verbatim; [ I"Blast_stdout, wait_threads = Open3.pipeline_r('ls', 'grep R') ;TI"r# => [#, [#, #]] ;TI"puts last_stdout.read ;TI"(wait_threads.each do |wait_thread| ;TI" wait_thread.join ;TI" end ;T: @format0o; ; [I" Output:;T@o;; [I"Rakefile ;TI"README.md ;T;0o; ; [I"BWith a block given, calls the block with the +stdout+ stream ;TI" of the last child process, ;TI"(and an array of the wait processes:;T@o;; [ I"EOpen3.pipeline_r('ls', 'grep R') do |last_stdout, wait_threads| ;TI" puts last_stdout.read ;TI"* wait_threads.each do |wait_thread| ;TI" wait_thread.join ;TI" end ;TI" end ;T;0o; ; [I" Output:;T@o;; [I"Rakefile ;TI"README.md ;T;0o; ; [I"LLike Process.spawn, this method has potential security vulnerabilities ;TI"%if called with untrusted input; ;TI"Psee {Command Injection}[rdoc-ref:command_injection.rdoc@Command+Injection].;T@o; ; [I"HIf the first argument is a hash, it becomes leading argument +env+ ;TI"$in each call to Process.spawn; ;TI"Isee {Execution Environment}[rdoc-ref:Process@Execution+Environment].;T@o; ; [I"LIf the last argument is a hash, it becomes trailing argument +options+ ;TI"$in each call to Process.spawn; ;TI"Asee {Execution Options}[rdoc-ref:Process@Execution+Options].;T@o; ; [I"1Each remaining argument in +cmds+ is one of:;T@o; ; ;;[o;;0; [o; ; [I"GA +command_line+: a string that begins with a shell reserved word ;TI"Aor special built-in, or contains one or more metacharacters.;To;;0; [o; ; [I"BAn +exe_path+: the string path to an executable to be called.;To;;0; [o; ; [I"along with zero or more string arguments for the command.;T@o; ; [I"aSee {Argument command_line or exe_path}[rdoc-ref:Process@Argument+command_line+or+exe_path].;T: @fileI"lib/open3.rb;T:0@omit_headings_from_table_of_contents_below0I"ROpen3.pipeline_r([env, ] *cmds, options = {}) -> [last_stdout, wait_threads] ;T0[I"(*cmds, &block);T@{FI" Open3;TcRDoc::NormalModule00