62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/eventsimple/entity.rb', line 62
def reproject(at: nil, skip_deleted: false)
event_history = at ? events.where('created_at <= ?', at).load : events.load
if !skip_deleted && event_history.any?(&:deleted?)
raise "Cannot reproject: deleted event(s) found in event history"
end
ignore_props = (DEFAULT_IGNORE_PROPS + ignored_for_projection).map(&:to_s)
assign_attributes(self.class.column_defaults.except(*ignore_props))
event_history.each do |event|
event.apply_timestamps(self)
event.apply(self)
end
self
end
|