Class: Yes::Core::Aggregate::SharedReadModelRebuilder

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

Overview

Handles rebuilding of read models that are shared by multiple aggregates

Examples:

Using the shared rebuilder

rebuilder = SharedReadModelRebuilder.new(SharedUserReadModel)
rebuilder.call

Since:

  • 0.1.0

Defined Under Namespace

Classes: EventWithAggregate

Instance Method Summary collapse

Constructor Details

#initialize(read_model_class, ids) ⇒ SharedReadModelRebuilder

Returns a new instance of SharedReadModelRebuilder.

Examples:

rebuilder = SharedReadModelRebuilder.new(SharedUserProfile, ['user-1', 'user-2'])
rebuilder.call

Parameters:

  • read_model_class (Class)

    The Active Record read model class to rebuild

  • ids (Array<String>)

    Array of IDs to rebuild

Since:

  • 0.1.0



23
24
25
26
27
# File 'lib/yes/core/aggregate/shared_read_model_rebuilder.rb', line 23

def initialize(read_model_class, ids)
  @read_model_class = read_model_class
  @ids = ids
  @aggregate_types = find_aggregates_using_read_model
end

Instance Method Details

#callvoid

This method returns an undefined value.

Rebuilds the shared read model by processing all events from all aggregates

Since:

  • 0.1.0



31
32
33
34
35
# File 'lib/yes/core/aggregate/shared_read_model_rebuilder.rb', line 31

def call
  ids.each do |id|
    rebuild_read_model_for_id(id)
  end
end