Repository URL to install this package:
|
Version:
0.7.0.0.pre2 ▾
|
module EventStore
module Messaging
module Message
def self.included(cls)
cls.class_exec do
include ::Messaging::Message
extend Follow
extend Initial
extend Linked
extend Proceed
end
end
Info = ::Messaging::Message::Info
def precedence?(other_message)
follows? other_message
end
module Follow
def follow(source, receiver=nil, **arguments)
receiver ||= self.build
message = super source, receiver, **arguments
message
end
end
module Linked
def linked(metadata)
message = self.new
message.metadata = Metadata.new
Log.get(self).warn(tag: :obsolete) { "The `linked' method is obsolete. Consider using the `follow' method." }
message.metadata.causation_event_stream_name = metadata.source_event_stream_name
message.metadata.causation_event_position = metadata.source_event_position
message.metadata.correlation_stream_name = metadata.correlation_stream_name
message.metadata.reply_stream_name = metadata.reply_stream_name
message
end
end
module Proceed
def proceed(source, receiver=nil, **arguments)
Log.get(self).warn(tag: :obsolete) { "The `proceed' method is obsolete. Consider using the `follow' method." }
message = follow source, receiver, **arguments
message.metadata.extend Metadata
message
end
def self.call(source, receiver=nil, **arguments)
message = ::Messaging::Message::Follow.(source, receiver, **arguments)
message.metadata.extend Metadata
message
end
end
module Initial
def initial(initiated_stream_name)
metadata = Metadata.new
metadata.correlation_stream_name = initiated_stream_name
message = build
message.metadata = metadata
message
end
end
end
end
end