Я написал простой рубиновый камень, чтобы очистить набор веб-сайтов, предоставляя простой API, внутри самого драгоценного камня я включил метод повтора ... чтобы попытаться использовать Hpricot 3 или больше раз при сбое в основном из-за тайм-аутов.Ruby Web API скремблирование/обработка ошибок с помощью Hpricot
def retryable(options = {}, &block)
opts = { :tries => 1, :on => Exception }.merge(options)
retry_exception, retries = opts[:on], opts[:tries]
begin
return yield
rescue retry_exception
retry if (retries -= 1) > 0
end
yield
end
Так что теперь, в мое приложение Rails, который использует этот камень я создал мне интересно, как я должен обрабатывать ошибки должен сам Gem не в состоянии произвести результат, по какой-то причине ...
модели/Available.rb
data = Whatever.find_item_by_id options
unless hwdata
raise "Web error "
end
Я не совсем уверен, как справиться с этим ... в этот момент я не очень заботиться о повторе, я только хочу вернуть результат, либо хэш, который в gem возвращает или возвращает false с некоторой ошибкой?