Sha256: 1f0d6cfadd012acbe8c5555014e066f8d2a345b783c56a1a7f91612ad3a25ff7
Contents?: true
Size: 863 Bytes
Versions: 3
Compression:
Stored size: 863 Bytes
Contents
# frozen_string_literal: true module PubSubModelSync class Base delegate :config, :log, :debug?, to: self class << self def config PubSubModelSync::Config end def log(message, kind = :info) config.log message, kind end def debug? config.debug end end # @param errors (Array(Class|String)) def retry_error(errors, qty: 2, &block) retries ||= 0 block.call rescue => e retries += 1 res = errors.find { |e_type| match_error?(e, e_type) } raise if !res || retries > qty sleep(qty * 0.1) && retry end private # @param error (Exception) # @param error_type (Class|String) def match_error?(error, error_type) error_type.is_a?(String) ? error.message.include?(error_type) : error.is_a?(error_type) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
pub_sub_model_sync-1.0.beta2 | lib/pub_sub_model_sync/base.rb |
pub_sub_model_sync-1.0.beta1 | lib/pub_sub_model_sync/base.rb |
pub_sub_model_sync-1.0.beta | lib/pub_sub_model_sync/base.rb |