I see that it works, but I don’t find any of the documentation that
makes sense.
So – it seems to be IO class, but how? There’s no IO declaration
there.
Also, I can’t find anything that says you can open a command with a
preceding
pipe and get the output of the executed command.
I’m familiar with perls open: open(FH, “hostname |”) with a suffixed
pipe –
which is consistent with unix pipe usage.
But can someone explain to me what’s going on here so my brain doesn’t
implode?
What’s with the pipe being at the wrong end?
What’s the thinking behind that?
You can find a short description in ri or the Pickaxe:
C:\tmp>ri IO
-------------------------------------------------------------- Class: IO
Class +IO+ is the basis for all input and output in Ruby. An I/O
stream may be duplexed (that is, bidirectional), and so may use
more than one native operating system stream.
Many of the examples in this section use class +File+, the only
standard subclass of +IO+. The two classes are closely associated.
As used in this section, _portname_ may take any of the following
forms.
* A plain string represents a filename suitable for the
underlying operating system.
* A string starting with ``+|+'' indicates a subprocess. The
remainder of the string following the ``+|+'' is invoked as a
process with appropriate input/output channels connected to
it.
* A string equal to ``+|-+'' will create another Ruby instance
as
a subprocess.
Regards,
Pit
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.