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
- #autoset_attributes_for_events(*event_classes) ⇒ Object
- #event_attribute_keys(event_class) ⇒ Object
- #set_autoset_ignore_attributes(attribute_names) ⇒ Object
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 |