Sha256: 5582df542eadc560cbfac92559db4bd26ce012f3de2294995ab61d193cd6cd9e

Contents?: true

Size: 739 Bytes

Versions: 6

Compression:

Stored size: 739 Bytes

Contents

module BoomNats
  class Topic
    def initialize(message, reply_to, nats, serializer, parser)
      @message = message
      @reply_to = reply_to
      @nats = nats
      @serializer = serializer
      @parser = parser

      start
    end

    def consume
      raise Error, "consume method do not implement yet"
    end

    protected

    def start
      @result = consume

      unless @reply_to.nil?
        # puts "ReplyTo(#{@reply_to}) with: #{parsed_result}"
        @nats.publish(@reply_to, parsed_result)
      end

      @result
    end

    def params
      @params ||= parsed_message
    end

    def parsed_message
      @parser.call(@message)
    end

    def parsed_result
      @serializer.call(@result)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
boom_nats-0.1.5 lib/boom_nats/topic.rb
boom_nats-0.1.4 lib/boom_nats/topic.rb
boom_nats-0.1.3 lib/boom_nats/topic.rb
boom_nats-0.1.2 lib/boom_nats/topic.rb
boom_nats-0.1.1 lib/boom_nats/topic.rb
boom_nats-0.1.0 lib/boom_nats/topic.rb