#!/bin/sh
. "$(dirname "$0")/../common.sh"
case "$OS" in
alpine) run_install ruby ruby-dev gcc make musl-dev ca-certificates-bundle ;;
conda) run_install ruby ;;
msys2) run_install ruby ;;
brew) run_install ruby gcc make bash coreutils ;;
*) run_install ruby ruby-dev ruby-devel gcc make redhat-rpm-config ;;
esac
if [ "$OS" = "openeuler" ] || [ "$OS" = "fedora" ] || [ "$OS" = "centos" ] || [ "$OS" = "rhel" ]; then
run /bin/sh -c 'mkdir -p /usr/lib/rpm && touch /usr/lib/rpm/generic-hardened-cc1 /usr/lib/rpm/generic-hardened-ld'
fi
check_cmd ruby --version || lang_skip "no ruby for OS=$OS"
run_ebin ruby --version
run ruby -e "puts 1+1"
run ruby -e "puts \"ok\""
if [ "$OS" = "conda" ] || [ "$OS" = "msys2" ]; then
run ruby -e "Dir.mkdir('$TEST_TMP/rubyproj') rescue nil; File.write('$TEST_TMP/rubyproj/main.rb', 'puts \"hello\"')"
run ruby "$TEST_TMP/rubyproj/main.rb" | grep -q hello
elif [ "$OS" = "brew" ]; then
run bash -c "mkdir -p $TEST_TMP/rubyproj && cd $TEST_TMP/rubyproj && echo 'puts \"hello\"' > main.rb"
run bash -c "cd $TEST_TMP/rubyproj && ruby main.rb" | grep -qx hello
else
run /bin/sh -c "mkdir -p $TEST_TMP/rubyproj && cd $TEST_TMP/rubyproj && echo 'puts \"hello\"' > main.rb"
run /bin/sh -c "cd $TEST_TMP/rubyproj && ruby main.rb" | grep -qx hello
fi
if [ "$OS" = "conda" ]; then
lang_ok
exit 0
fi
if [ "$OS" = "msys2" ] || [ "$OS" = "brew" ]; then
SHELL_CMD="bash -c"
else
SHELL_CMD="/bin/sh -c"
fi
if run which gem; then
run $SHELL_CMD "export GEM_HOME=$TEST_TMP/gem GEM_PATH=$TEST_TMP/gem XDG_CACHE_HOME=$TEST_TMP/xdg-cache && gem install json"
run $SHELL_CMD "export GEM_HOME=$TEST_TMP/gem GEM_PATH=$TEST_TMP/gem && ruby -e 'require \"json\"; puts JSON.parse(\"{\\\"x\\\":1}\")[\"x\"]'" | grep -qx 1
fi
run_ebin_if gem --version
GEM_HOME="$TEST_TMP/gem" GEM_PATH="$TEST_TMP/gem" XDG_CACHE_HOME="$TEST_TMP/xdg-cache" run gem install json
lang_ok