Module: Sequent::Core::Helpers::AutosetAttributes::ClassMethods

Defined in:
lib/sequent/core/helpers/autoset_attributes.rb

Constant Summary collapse

@@autoset_ignore_attributes =
%w{aggregate_id sequence_number created_at}

Instance Method Summary collapse

Instance Method Details

#autoset_attributes_for_events(*event_classes) ⇒ Object



38
39
40
41
42
43
44
45
46
# File 'lib/sequent/core/helpers/autoset_attributes.rb', line 38

def autoset_attributes_for_events(*event_classes)
  event_classes.each do |event_class|
    on event_class do |event|
      self.class.event_attribute_keys(event_class).each do |attribute_name|
        instance_variable_set(:"@#{attribute_name.to_s}", event.send(attribute_name.to_sym))
      end
    end
  end
end

#event_attribute_keys(event_class) ⇒ Object



34
35
36
# File 'lib/sequent/core/helpers/autoset_attributes.rb', line 34

def event_attribute_keys(event_class)
  event_class.types.keys.reject { |k| @@autoset_ignore_attributes.include?(k.to_s) }
end

#set_autoset_ignore_attributes(attribute_names) ⇒ Object



30
31
32
# File 'lib/sequent/core/helpers/autoset_attributes.rb', line 30

def set_autoset_ignore_attributes(attribute_names)
  @@autoset_ignore_attributes = attribute_names
end