Восстановитесь с отказа, требуют/загружают в рубине

Я недавно обнаружил шаблон Hanna RDoc, и мне нравится он намного больше, чем значение по умолчанию. Я хочу использовать его в своем проекте, но я также не хочу свой проект потребовать его.

Единственное изменение, которое я должен был внести в свой Rakefile, чтобы заставить шаблон hanna работать, состояло в том, чтобы измениться

require 'rake/rdoctask'

кому:

require 'hanna/rdoctask'

Там какой-либо путь состоит в том, чтобы делать попытку требования и получить/восстановить от ошибки? Я заметил загрузку, и потребуйте, возвращают булевскую переменную в irb, таким образом, я думал, возможно, что я мог сделать это:

unless require 'hanna/rdoctask'
  require 'rake/rdoctask'
end

К сожалению, грабли, прерванные, как только неудавшееся требование. Затем я попробовал:

begin
  require 'hanna/rdoctask'
rescue
  require 'rake/rdoctask'
end

но это не работало также.

Там какой-либо путь состоит в том, чтобы выполнить то, чего я делаю попытку здесь?

5
задан Herms 29 January 2010 в 18:14
поделиться

2 ответа

Ваш последний вариант должен работать.

require 'rubygems'
begin
  require 'hanna/rdoctask'
rescue LoadError
  puts 'Hanna rdoc unavailable, falling back to rake'
  require 'rake/rdoctask'
end

работает на моей машине, работает Ruby 1.8.7P248 с установленным драгоценным камнем «Rake», но не «Ханна» Gem. Вы уверены, что у вас есть рубигы, требуемые в вашей среде, хотя? Если нет, требование «Rake / RDoCtask» может также потерпеть неудачу.

4
ответ дан 14 December 2019 в 08:50
поделиться

Я заметил загрузку и требую возврата булева в irb

Возвращаемое значение require сообщает, была ли библиотека фактически загружена: это true, если библиотека была загружена, и false, если библиотека была найдена, но не загружена, так как она уже была загружена -.

Ошибка указывается с исключением LoadError.

3
ответ дан 14 December 2019 в 08:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: