Sha256: 43f6f3adb16656a82404c2bbeaf06c187105f9d76a7b61a1bc68312f5f0450c7

Contents?: true

Size: 898 Bytes

Versions: 6

Compression:

Stored size: 898 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"
          end
        end

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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fusuma-3.3.0 lib/fusuma/plugin/events/event.rb
fusuma-3.2.0 lib/fusuma/plugin/events/event.rb
fusuma-3.1.0 lib/fusuma/plugin/events/event.rb
fusuma-3.0.0 lib/fusuma/plugin/events/event.rb
fusuma-2.5.1 lib/fusuma/plugin/events/event.rb
fusuma-2.5.0 lib/fusuma/plugin/events/event.rb