class Sequent::Core::Event

Private Class Methods

new(args = {}) click to toggle source
# File lib/sequent/core/event.rb, line 18
def initialize(args = {})
  update_all_attributes args
  fail 'Missing aggregate_id' unless @aggregate_id
  fail 'Missing sequence_number' unless @sequence_number

  @created_at ||= Time.now
end

Private Instance Methods

payload() click to toggle source
# File lib/sequent/core/event.rb, line 26
def payload
  result = {}
  instance_variables
    .reject { |k| payload_variables.include?(k) }
    .select { |k| self.class.types.keys.include?(to_attribute_name(k)) }
    .each do |k|
      result[k.to_s[1..-1].to_sym] = instance_variable_get(k)
    end
  result
end
payload_variables() click to toggle source
# File lib/sequent/core/event.rb, line 39
def payload_variables
  %i[@aggregate_id @sequence_number @created_at]
end
to_attribute_name(instance_variable_name) click to toggle source
# File lib/sequent/core/event.rb, line 45
def to_attribute_name(instance_variable_name)
  instance_variable_name[1..-1].to_sym
end