Module: TransactionalOutbox::Event::Payloadable

Included in:
TransactionalOutbox::Event
Defined in:
lib/transactional_outbox/event/payloadable.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(klass) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/transactional_outbox/event/payloadable.rb', line 6

def self.extended(klass)
  klass.define_method(:build_payload) do |context|
    builder = self.class.instance_variable_get(:@payload) || TransactionalOutbox::DEFAULT_PAYLOAD_BUILDER_BLOCK

    instance_exec(context, &builder)
  end
end

Instance Method Details

#prepare_payload(&block) ⇒ Object

rubocop:disable Naming/MemoizedInstanceVariableName



14
# File 'lib/transactional_outbox/event/payloadable.rb', line 14

def prepare_payload(&block) = @payload ||= block # rubocop:disable Naming/MemoizedInstanceVariableName