insales/insales_api — pull request #11 by Nu-hin (2014-06-04 11:36:18+00:00)
Title: wait_retry - Вызов блока с ожиданием, если лимит Insales достигнут

Предлагаю ввести метод `InsalesApi::wait_retry`, который позволяет выполнять блок кода с обращением к API. При достижении лимита запросов метод будет ожидать указанное количество времени, после чего повторит попытку. Такой подход в наших приложениях себя очень хорошо зарекомендовал.

Все детально покрыто тестами.

Пример.
```ruby
notify_user = Proc.new do |wait_for, attempt, max_attempts|
puts "API limit reached. Waiting for #{wait_for} seconds. Attempt #{attempt}/#{max_attempts}"
end

InsalesApi::wait_retry(180, 10, notify_user) do |x|
puts "Attempt ##{x}."
products = InsalesApi::Products.all
end
```