Sha256: 5f29427ae6ce379d4cea12792be53d0f908db03db81fefc462da12387c2a7b11
Contents?: true
Size: 1.76 KB
Versions: 1
Compression:
Stored size: 1.76 KB
Contents
# frozen_string_literal: true require 'luna_park/entities/attributable' require_relative 'errors' module CycloneLariat class Event < LunaPark::Entities::Attributable KIND = 'event' attr :uuid, String, :new attr :publisher, String, :new attr :type, String, :new attr :error attr :version attr :data attr_reader :sent_at, :processed_at, :received_at def kind KIND end def version=(value) @version = Integer(value) end def sent_at=(value) @sent_at = wrap_time(value) end def received_at=(value) @received_at = wrap_time(value) end def processed_at=(value) @processed_at = wrap_time(value) end def error_message=(txt) @error ||= Errors::ProcessingEventLogic.new @error.message = txt end def error_details=(details) @error ||= Errors::ProcessingEventLogic.new @error.details = details end def ==(other) kind == other.kind && uuid == other.uuid && publisher == other.publisher && type == other.type && error&.message == other.error&.message && error&.details == other.error&.details && version == other.version && sent_at.to_i == other.sent_at.to_i && received_at.to_i == other.received_at.to_i processed_at.to_i == other.processed_at.to_i end def to_json(*args) hash = serialize hash[:type] = [kind, hash[:type]].join '_' hash.to_json(*args) end private def wrap_time(value) case value when String then Time.parse(value) when Time then value when NilClass then nil else raise ArgumentError, "Unknown type `#{value.class}`" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cyclone_lariat-0.2.1 | lib/cyclone_lariat/event.rb |