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