Sha256: 1444727c28773bab9688c8cd923d8c1a7752320e8d3ecfdd43dd7bff2d38bc23
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true require_relative './buffer.rb' module Fusuma module Plugin module Buffers # manage events and generate command class TimerBuffer < Buffer DEFAULT_SOURCE = 'timer_input' DEFAULT_SECONDS_TO_KEEP = 60 def config_param_types { 'source': [String], 'seconds_to_keep': [Float, Integer] } end # @param event [Event] # @return [Buffer, NilClass] def buffer(event) return if event&.tag != source @events.push(event) self end def clear_expired(current_time: Time.now) @seconds_to_keep ||= (config_params(:seconds_to_keep) || DEFAULT_SECONDS_TO_KEEP) @events.each do |e| break if current_time - e.time < @seconds_to_keep MultiLogger.debug("#{self.class.name}##{__method__}") @events.delete(e) end end def empty? @events.empty? end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fusuma-2.0.0.pre | lib/fusuma/plugin/buffers/timer_buffer.rb |