HISTORY: 2.4.0: - added ability to specify stdin for Session::Bash and Session::Sh sh = Session::new sh.execute 'cat', :stdin => io sh.execute 'cat', :stdin => string sh.execute 'cat', :stdin => stringio 2.3.0: - fixed warning of @debug being un-initialized 2.2.0: - added a private munged version of Open3::open3. the builtin one causes the child process to become a child of init, this was very inconvenient because it was sometimes hard to crawl proces trees - the parent was lost. now the seesion is a child process that has been detached using Process::detach. this results in less suprising behaviour; for instance sending signal TERM to a process results in any sessions it had open dying as well. you can use Session::use_open3=true or ENV['SESSION_USE_OPEN3']='1' for the old behaviour if you need it. - added Session::Bash::Login class. this class opens a session which has all the normal settings of a bash loging shell (.bashrc is sourced). this if often convenient as paths, aliases, etc. are set as normal. - moved the Spawn module inside the Session module. now the Session module is the namespace for everything so using session pollutes namespace less. 2.1.9: - fixed bug where setting track history after creation caused later failure in execute (@history =[] only in ctor). thanks leon breedt ! - updates to README - included session-x.x.x.rpa file - thanks batsman - to_str/to_s/to_yaml for H