Class: Yes::Core::Aggregate::ReadModelRebuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/yes/core/aggregate/read_model_rebuilder.rb

Overview

Handles rebuilding of read models for aggregates

Examples:

Using the rebuilder

rebuilder = ReadModelRebuilder.new(aggregate)
rebuilder.call

Since:

  • 0.1.0

Instance Method Summary collapse

Constructor Details

#initialize(aggregate) ⇒ ReadModelRebuilder

Returns a new instance of ReadModelRebuilder.

Parameters:

Since:

  • 0.1.0



18
19
20
# File 'lib/yes/core/aggregate/read_model_rebuilder.rb', line 18

def initialize(aggregate)
  @aggregate = aggregate
end

Instance Method Details

#call(remove: true) ⇒ void

This method returns an undefined value.

Rebuilds the read model by processing all events

Parameters:

  • remove (Boolean) (defaults to: true)

    Whether to remove the read model before rebuilding

Since:

  • 0.1.0



25
26
27
28
# File 'lib/yes/core/aggregate/read_model_rebuilder.rb', line 25

def call(remove: true)
  remove ? remove_read_model : read_model.update(revision_column => -1)
  events.each { |events_page| events_page.each { |event| process_event(event) } }
end