Sha256: 07f9befc3b6fedb0437757d6d8f598b12e0b683ee130a2e9aad8efa35b606cd8

Contents?: true

Size: 1.01 KB

Versions: 9

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

require_relative '../base.rb'
require_relative '../events/event.rb'

module Fusuma
  module Plugin
    module Detectors
      # Inherite this base
      class Detector < Base
        # @param _buffers [Array<Buffer>]
        # @return [Event] if event is detected
        # @return [NilClass] if event is NOT detected
        def detect(_buffers)
          raise NotImplementedError, "override #{self.class.name}##{__method__}"

          # create_event(record:)
        end

        # @param record [Events::Records::Record]
        # @return [Events::Event]
        def create_event(record:)
          @last_time = Time.now
          Events::Event.new(time: Time.now, tag: tag, record: record)
        end

        def last_time
          @last_time ||= Time.now
        end

        def tag
          self.class.name.split('Detectors::').last.underscore
        end

        def type
          self.class.name.underscore.split('/').last.gsub('_detector', '')
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
fusuma-1.4.0 lib/fusuma/plugin/detectors/detector.rb
fusuma-1.3.3 lib/fusuma/plugin/detectors/detector.rb
fusuma-1.3.2 lib/fusuma/plugin/detectors/detector.rb
fusuma-1.3.1 lib/fusuma/plugin/detectors/detector.rb
fusuma-1.3.0 lib/fusuma/plugin/detectors/detector.rb
fusuma-1.2.1 lib/fusuma/plugin/detectors/detector.rb
fusuma-1.2 lib/fusuma/plugin/detectors/detector.rb
fusuma-1.1 lib/fusuma/plugin/detectors/detector.rb
fusuma-1.0 lib/fusuma/plugin/detectors/detector.rb