lib/eventsimple/event.rb in eventsimple-1.5.4 vs lib/eventsimple/event.rb in eventsimple-1.5.5
- old
+ new
@@ -3,9 +3,21 @@
require 'globalid'
include GlobalID::Identification
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
def drives_events_for(aggregate_klass, aggregate_id:, events_namespace: nil)
+ if defined?(aggregate_klass._aggregate_id)
+ raise ArgumentError, "aggregate_id mismatch event:#{aggregate_id} entity:#{aggregate_klass._aggregate_id}" if aggregate_id != aggregate_klass._aggregate_id
+
+ begin
+ aggregate_column_type_in_event = aggregate_klass.column_for_attribute(aggregate_klass._aggregate_id).type unless aggregate_klass.attribute_names.blank?
+ aggregate_column_type_in_entity = column_for_attribute(:aggregate_id).type unless aggregate_klass.attribute_names.blank?
+
+ raise ArgumentError, "column type mismatch - event:#{aggregate_column_type_in_event} entity:#{aggregate_column_type_in_entity}" if aggregate_column_type_in_event != aggregate_column_type_in_entity
+ rescue ActiveRecord::NoDatabaseError
+ end
+ end
+
class_attribute :_events_namespace
self._events_namespace = events_namespace
class_attribute :_aggregate_klass
self._aggregate_klass = aggregate_klass