Sha256: 78c34c7387976a6e77b04391e8002e35e1c4a89c0ee697e85f6201234d78aa13

Contents?: true

Size: 555 Bytes

Versions: 20

Compression:

Stored size: 555 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

20 entries across 20 versions & 1 rubygems

Version Path
mihari-2.4.0 lib/mihari/emitters/base.rb
mihari-2.3.1 lib/mihari/emitters/base.rb
mihari-2.3.0 lib/mihari/emitters/base.rb
mihari-2.2.1 lib/mihari/emitters/base.rb
mihari-2.2.0 lib/mihari/emitters/base.rb
mihari-2.1.0 lib/mihari/emitters/base.rb
mihari-2.0.0 lib/mihari/emitters/base.rb
mihari-1.5.1 lib/mihari/emitters/base.rb
mihari-1.5.0 lib/mihari/emitters/base.rb
mihari-1.4.1 lib/mihari/emitters/base.rb
mihari-1.4.0 lib/mihari/emitters/base.rb
mihari-1.3.2 lib/mihari/emitters/base.rb
mihari-1.3.1 lib/mihari/emitters/base.rb
mihari-1.3.0 lib/mihari/emitters/base.rb
mihari-1.2.1 lib/mihari/emitters/base.rb
mihari-1.2.0 lib/mihari/emitters/base.rb
mihari-1.1.1 lib/mihari/emitters/base.rb
mihari-1.1.0 lib/mihari/emitters/base.rb
mihari-1.0.1 lib/mihari/emitters/base.rb
mihari-1.0.0 lib/mihari/emitters/base.rb