Module: AggregateRoot::AggregateMethods
- Defined in:
- lib/aggregate_root.rb
Constant Summary collapse
- UNMARSHALED_VARIABLES =
%i[@version @unpublished_events]
Instance Method Summary collapse
- #apply(*events) ⇒ Object
- #marshal_dump ⇒ Object
- #marshal_load(vars) ⇒ Object
- #unpublished_events ⇒ Object
- #version ⇒ Object
- #version=(value) ⇒ Object
Instance Method Details
#apply(*events) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/aggregate_root.rb', line 43 def apply(*events) events.each do |event| apply_strategy.(self, event) @unpublished_events << event end end |
#marshal_dump ⇒ Object
65 66 67 68 69 70 71 72 |
# File 'lib/aggregate_root.rb', line 65 def marshal_dump instance_variables .reject { |m| UNMARSHALED_VARIABLES.include? m } .inject({}) do |vars, attr| vars[attr] = instance_variable_get(attr) vars end end |
#marshal_load(vars) ⇒ Object
74 75 76 |
# File 'lib/aggregate_root.rb', line 74 def marshal_load(vars) vars.each { |attr, value| instance_variable_set(attr, value) unless UNMARSHALED_VARIABLES.include?(attr) } end |
#unpublished_events ⇒ Object
59 60 61 |
# File 'lib/aggregate_root.rb', line 59 def unpublished_events @unpublished_events.each end |
#version ⇒ Object
50 51 52 |
# File 'lib/aggregate_root.rb', line 50 def version @version end |
#version=(value) ⇒ Object
54 55 56 57 |
# File 'lib/aggregate_root.rb', line 54 def version=(value) @unpublished_events = [] @version = value end |