Sha256: 81fd552278c179a9429a1f8122721982441d2be08658c8b6d12c503ecc068c2d

Contents?: true

Size: 656 Bytes

Versions: 2

Compression:

Stored size: 656 Bytes

Contents

# frozen_string_literal: true

module Fusuma
  module Plugin
    module Buffers
      # Buffer events having KeypressRecord
      class KeypressBuffer < Buffer
        DEFAULT_SOURCE = 'keypress_parser'

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

          @events.push(event)
        end

        def clear_expired(*)
          return if @events.empty?

          @events.clear if released?
        end

        def empty?
          @events.empty?
        end

        private

        def released?
          true if @events.last.record.status =~ /released/
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fusuma-plugin-keypress-0.2.1 lib/fusuma/plugin/buffers/keypress_buffer.rb
fusuma-plugin-keypress-0.2.0 lib/fusuma/plugin/buffers/keypress_buffer.rb