Sha256: a40ea36805a6268fa5caec9df05b3a73c8688f8f67aaef5d21b3b4a37d0681c6

Contents?: true

Size: 907 Bytes

Versions: 4

Compression:

Stored size: 907 Bytes

Contents

# frozen_string_literal: true

require_relative "../base"
require_relative "records/record"
require_relative "records/text_record"

module Fusuma
  module Plugin
    module Events
      # Event format
      class Event < Base
        attr_reader :time
        attr_accessor :tag, :record

        # @param time [Time]
        # @param tag [Tag]
        # @param record [String, Record]
        def initialize(tag:, record:, time: Time.now)
          super()
          @time = time
          @tag = tag
          @record = case record
          when Records::Record
            record
          when String
            Records::TextRecord.new(record)
          else
            raise ArgumentError,
              "@record should be String or Record: #{record.class}, #{record}"
          end
        end

        def inspect
          "tag: #{tag}, record: #{record}"
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fusuma-3.7.0 lib/fusuma/plugin/events/event.rb
fusuma-3.6.2 lib/fusuma/plugin/events/event.rb
fusuma-3.6.1 lib/fusuma/plugin/events/event.rb
fusuma-3.6.0 lib/fusuma/plugin/events/event.rb