Sha256: 5f7779807b3cd7c442f935de6e664706fd9b3106ae2f1e8c3d7178f210053a68

Contents?: true

Size: 553 Bytes

Versions: 10

Compression:

Stored size: 553 Bytes

Contents

# frozen_string_literal: true

module Mihari
  module Emitters
    class Base
      include Configurable
      include Retriable

      def self.inherited(child)
        Mihari.emitters << child
      end

      # @return [true, false]
      def valid?
        raise NotImplementedError, "You must implement #{self.class}##{__method__}"
      end

      def run(**params)
        retry_on_error { emit(params) }
      end

      def emit(*)
        raise NotImplementedError, "You must implement #{self.class}##{__method__}"
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
mihari-0.17.5 lib/mihari/emitters/base.rb
mihari-0.17.4 lib/mihari/emitters/base.rb
mihari-0.17.3 lib/mihari/emitters/base.rb
mihari-0.17.2 lib/mihari/emitters/base.rb
mihari-0.17.1 lib/mihari/emitters/base.rb
mihari-0.17.0 lib/mihari/emitters/base.rb
mihari-0.16.0 lib/mihari/emitters/base.rb
mihari-0.15.0 lib/mihari/emitters/base.rb
mihari-0.14.0 lib/mihari/emitters/base.rb
mihari-0.13.2 lib/mihari/emitters/base.rb