Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
POpen4 without native libraries
branch: master

err

latest commit 20f30f4371
Greg Hazel ghazel authored
Failed to load latest commit information.
lib err
tests Windows line ends removed
CHANGES Explicit open4 version dependency
LICENSE README renamed to README.rdoc
README.rdoc README update
Rakefile Explicit open4 version dependency
VERSION Version bump to 0.1.5

README.rdoc

POpen4

This is a repackaged version of John-Mason P. Shackelfords POpen4 gem without native libraries.

Description

POpen4 provides the Rubyist a single API across platforms for executing a command in a child process with handles on stdout, stderr, stdin streams as well as access to the process ID and exit status. It does very little other than to provide an easy way to use either Ara Howard's Open4 library or the win32-popen3 library by Park Heesob and Daniel Berger depending on your platform and without having to code around the slight differences in their APIs.

Notes

Rather than adopting either Open4's API or win32-open3's (they differ in several respects, but most obviously in the order in which streams are passed to the block) I am proposing a third API for couple of reasons. First, Open4 passes the PID first and win32-open3 passes stdin neither of which seem to me to be the streams we are most likely to use when we don't need all four. POpen4 passes stdout and stderr first so that when the others are not required we can omit them from the block. Second, I thought it best to break everybody's code rather than to be a drop in replacement on one platform and be a surprise on another. No surprises–it's a new API on either platform.

Installation

$ gem install POpen4 --source http://gemcutter.org

Acknowledgements

Ara Howard, Park Heesob, Daniel Berger and others have done the real work. Many thanks to them for the many hours they have poured into sharing their work with the Ruby community at large.

Something went wrong with that request. Please try again.