Не уверен, как вы встраиваете код Ruby, но вы могли бы легко иметь фоновый поток таймера, который оценивает
raise YourTimeLimitExceededException, 'no more time'
через определенный промежуток времени.Вы также можете отключить Thread.new и Thread.start (а также java.lang.Thread.new) для кода пользователя, иначе они могут легко обойти ваш таймер.