support rubinius and jruby