Sha256: 4ae0c68df3f5c2f8ebcf6391e2f16a31cb1101cd8d4337c39613da0c6045aaba

Contents?: true

Size: 483 Bytes

Versions: 3

Compression:

Stored size: 483 Bytes

Contents

module OmfCommon
  class TopicMessage
    attr_accessor :body, :comm

    def initialize(body, comm)
      self.body ||= body
      self.comm ||= comm
    end

    def publish(topic_id, &block)
      comm.publish(topic_id, body.dup, &block)
    end

    %w(created status failed released).each do |inform_type|
      define_method("on_inform_#{inform_type}") do |*args, &message_block|
        comm.send("on_#{inform_type}_message", body, &message_block)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
omf_common-6.0.0.pre.10 lib/omf_common/topic_message.rb
omf_common-6.0.0.pre.8 lib/omf_common/topic_message.rb
omf_common-6.0.0.pre.7 lib/omf_common/topic_message.rb