class RubyEventStore::LinkByMetadata

Public Class Methods

new(event_store:, key:, prefix: nil) click to toggle source
# File lib/ruby_event_store/link_by_metadata.rb, line 5
def initialize(event_store:, key:, prefix: nil)
  @event_store = event_store
  @key = key
  @prefix = prefix || ["$by", key, nil].join("_")
end

Public Instance Methods

call(event) click to toggle source
# File lib/ruby_event_store/link_by_metadata.rb, line 11
def call(event)
  return unless event.metadata.has_key?(@key)

  @event_store.link([event.event_id], stream_name: "#{@prefix}#{event.metadata.fetch(@key)}")
end