v0.10.1 - 2021-02-14
- Fix undesired persistence of environment variables in Ruby >= 3.0.0
v0.10.0 - 2020-10-22
- Change :chdir option to escape directory location path
- Change gemspec to add metadata and remove test artefacts
- Change to update pastel dependency and restrict version to minor only
- Remove bundler as a dev dependency and relax rspec's upper boundary
- Fix Ruby 2.7 keyword conversion errors
- Fix error when environment variable contains % character
v0.9.0 - 2019-09-28
- Change gemspec to require Ruby >= 2.0.0
v0.8.2 - 2018-08-07
- Change gemspec to load only required files
- Fix issue with Ruby greater than 2.5.0 displaying thread error traceback by default
v0.8.1 - 2018-05-20
- Change ProcessRunner#write_stream to handle all writing logic
v0.8.0 - 2018-04-22
- Add :output_only_on_error option by Iulian Onofrei(@revolter)
- Add :verbose flag to toggle warnings
- Change ProcessRunner to use waitpid2 api for direct status
- Change ProcessRunner stdout & stderr reading to use IO.select and be non-blocking
- Fix :timeout to raise when long running without input or output
- Fix ProcessRunner to ensure no zombie processes on timeouts
v0.7.0 - 2017-11-19
- Add :binmode option to allow configuring input & ouput as binary
- Add :pty option to allow runnig commands in PTY(pseudo terminal)
- Change Command to remove threads synchronization to leave it up to client to handle
- Change Cmd to allow updating options
- Change Command to accept options for all commands such as :timeout, :binmode etc...
- Change Execute to ChildProcess module
- Change ChildProcess to skip spawn redirect close options on Windows platform
- Change to enforce UTF-8 encoding for process pipes to be cross platform
- Change ProcessRunner to stop rescuing runtime failures
- Change to stop mutating String instances
- Fix ProcessRunner threads deadlocking on exclusive mutex
- Fix :timeout option to raise TimeoutExceeded error
- Fix test suite to work on Windows
- Fix Cmd arguments escaping
v0.6.0 - 2017-07-22
- Add runtime property to command result
- Add ability to merge multiple redirects
- Change to make all strings immutable
- Change waiting for pid to recover when already dead
- Fix redirection to instead of redirecting to parent process, redirect to child process. And hence allow for :out => :err redirection to work with output logging.
v0.5.0 - 2017-07-16
- Add :signal option for timeout
- Add :input option for handling stdin input
- Add ability for Command#run to specify a callback that is invoked whenever stdout or stderr receive output
- Add Command#wait for polling a long running script for matching output
- Change ProcessRunner to immediately sync write pipe
- Change ProcessRunner to write to stdin stream when writable
- Fix quiet printer write call by @jamesepatrick
- Fix to correctly close all pipe ends between parent and child process
- Fix timeout behaviour for writable and readable streams
v0.4.0 - 2017-02-22
- Remove automatic insertion of semicolons on line breaks and fix issue #27
v0.3.3 - 2017-02-10
- Update deprecated Fixnum class to Integer for Ruby 2.4 compatability by Edmund Larden(@admund)
- Remove self extension from Execute
v0.3.2 - 2017-02-06
- Fix File namespacing
v0.3.1 - 2017-01-22
- Fix top level File constant
v0.3.0 - 2017-01-13
- Add ability to enumerate Result output
- Add #record_saparator for specifying delimiter for enumeration
- Change Abstract printer to separate arguments out
- Change Cmd to prevent modifications
- Change pastel dependency version
v0.2.0 - 2016-07-03
- Add ruby interperter helper
- Fix multibyte content truncation for streams by Ondrej Moravcik(@ondra-m)
v0.1.0 - 2016-05-29
- Initial implementation and release