class Midnight::Rails::ActiveRecordEventAdapter
noinspection RubyDefParenthesesInspection noinspection RubyParameterNamingConvention
Attributes
active_record[R]
Public Class Methods
new(\ active_record: DefaultEvent, serializer: Utilities::JsonSerializer, fetch_event_timestamp: lambda do |event| ::Time.parse(event.metadata[:occurred_at]) end )
click to toggle source
# File lib/midnight/rails/active_record_event_adapter.rb, line 12 def initialize(\ active_record: DefaultEvent, serializer: Utilities::JsonSerializer, fetch_event_timestamp: lambda do |event| ::Time.parse(event.metadata[:occurred_at]) end ) @active_record = active_record @serializer = serializer @fetch_event_timestamp = fetch_event_timestamp freeze end
Public Instance Methods
save_events(events = [], next_position:, state_id:, **_)
click to toggle source
# File lib/midnight/rails/active_record_event_adapter.rb, line 25 def save_events(events = [], next_position:, state_id:, **_) serialized_events = events.each_with_index.map do |unserialized_event, position_offset| { event_type: unserialized_event.class.name, data: @serializer.dump(unserialized_event.data), metadata: @serializer.dump(unserialized_event.metadata), position: next_position + position_offset, state_id: state_id, occurred_at: @fetch_event_timestamp.call(unserialized_event), } end # https://github.com/zdennis/activerecord-import active_record.import(serialized_events, validate: false) end