Prepend functions with "function" to match guidelines (@zendeavor).
Mention where our system detect code came from.
Use the new RUBY_AUTO_VERSION variable in tests.
Use a better name to avoid matching against ~/.rubies/foo.
Use (( )) for arthimetic expressions (@zendeavor).
Prefer $(< ...) over $(cat ...) (@zendeavor).
Use != as it is available on Bash 3 (@havenwood).
Make sure $RUBY_ROOT is quoted. (@zendeavor)
Quote the String used in the fuzzy match. (@zendeavor)
Use ${path##*/} instead of basename. (@zendeavor)
Use ${path%/*} instead of dirname. (@zendeavor)
Use $(...) instead of back-ticks. (@zendeavor)
Quoting more arguments.
Quote arguments.
Avoid calling the same command twice.
Directly test the exit status of the command. (@zendeavor)
Use the POSIX `command -v` function instead of type/which. (@havenwood)
Use read -r instead of $(cat ...) to avoid forking. (@zendeavor)
Export all TEST variables and move them into helper.sh.

* Set HOME in helper.sh.
* Renamed PROJECT_DIR to TEST_PROJECT_DIR.
* Use __shunit_tmpDir in the $PATH tests.
More aggressive quoting of arguments, even $SHELL.