Sha256: af451bc3af9e34459e5945a1088005ba2c41b68f7f5f00a90aae17f6feccb283
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
# frozen_string_literal: true module Mihari module Enrichers class Base include Mixins::Configurable include Mixins::Retriable include Dry::Monads[:result, :try] # @return [Hash] attr_reader :options def initialize(options: nil) @options = options || {} end # # @return [Integer] # def retry_interval options[:retry_interval] || Mihari.config.retry_interval end # # @return [Boolean] # def retry_exponential_backoff options[:retry_exponential_backoff] || Mihari.config.retry_exponential_backoff end # # @return [Integer] # def retry_times options[:retry_times] || Mihari.config.retry_times end # # @return [Integer, nil] # def timeout options[:timeout] end def query_result(value) Try[StandardError] do retry_on_error( times: retry_times, interval: retry_interval, exponential_backoff: retry_exponential_backoff ) { query value } end.to_result end # # @param [String] value # def query(value) raise NotImplementedError, "You must implement #{self.class}##{__method__}" end class << self def inherited(child) super Mihari.enrichers << child end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mihari-5.5.0 | lib/mihari/enrichers/base.rb |