Sha256: c830155bf54ef3b4e0c26a7f695417dc7d3769b4e6ce5784a9238b93fb3aa151

Contents?: true

Size: 1019 Bytes

Versions: 12

Compression:

Stored size: 1019 Bytes

Contents

# frozen_string_literal: true

require_relative '../base'

module Fusuma
  module Plugin
    module Buffers
      # buffer events and output
      class Buffer < Base
        def initialize(*args)
          super()
          @events = Array.new(*args)
        end

        attr_reader :events

        # @return [String]
        def type
          @type ||= self.class.name.underscore.split('/').last.gsub('_buffer', '')
        end

        # @param event [Event]
        def buffer(event)
          return if event&.tag != source

          @events.push(event)
        end

        # clear old events
        # @param current_time [Time]
        def clear_expired(current_time: Time.now); end

        # clear buffer
        def clear
          @events.clear
        end

        # Set source for tag from config.yml.
        # DEFAULT_SOURCE is defined in each plugins.
        def source
          @source ||= config_params(:source) || self.class.const_get('DEFAULT_SOURCE')
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
fusuma-2.4.1 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.4.0 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.3.0 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.2.0 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.1.0 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.0.5 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.0.4 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.0.3 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.0.2 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.0.1 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.0.0 lib/fusuma/plugin/buffers/buffer.rb
fusuma-2.0.0.pre2 lib/fusuma/plugin/buffers/buffer.rb