Как я могу перехватить исключения LoadError в Ruby 1.9 и 1.8?

#ruby #load #version #require

#ruby #загрузить #версия #требуется

Вопрос:

У меня есть куча скриптов Ruby 1.8.x, для которых требуются ftools.

Как я могу заставить эти скрипты прекратить выдавать исключения при их запуске в ruby 1.9?

Я хочу сохранить как можно больше, чтобы скрипты успешно выполнялись как в 1.8, так и в 1.9. Я не хочу устанавливать RVM или что-то подобное, потому что было бы лучше просто написать код, который нормально работает как в 1.9, так и в 1.8, насколько это возможно.

Это то, что я уже пробовал:

 begin; require  'ftools' rescue LoadError nil end;
begin; require  'fileutils' rescue nil; end;
  

Как я могу заставить это работать. Желаемый результат заключается в том, что ruby автоматически завершает работу, если ftools не найден, а затем просто переходит к fileutils вместо этого.

Ответ №1:

Вы пробовали запрашивать свою резервную библиотеку в обработчике восстановления?

 begin
  require 'ftools'
rescue LoadError
  require 'fileutils'
end