Sha256: de65eb4ae0dd5acaf006c08b288b5fb29728ebd7d81e7e24d803e18da091c79d

Contents?: true

Size: 1.21 KB

Versions: 30

Compression:

Stored size: 1.21 KB

Contents

module Stilts
  module Stomp 


    class Client < org.projectodd.stilts.stomp.client::StompClient

      alias_method :original_subscribe, :subscribe

      def subscribe(destination, opts={}, &block) 
        builder = original_subscribe( destination )
        builder.withSelector( opts[:selector] ) if ( opts[:selector] ) 
        builder.withMessageHandler( BlockMessageHandler.new( block ) )
        builder.withAckMode( org.projectodd.stilts.stomp::Subscription::AckMode::AUTO )
        builder.start
      end

      alias_method :original_send, :send
    
      def send(destination, message)
        stomp_message = org.projectodd.stilts.stomp::StompMessages.createStompMessage( destination, message )
        original_send( stomp_message )
      end

    end # -- Client

    class BlockMessageHandler

      include org.projectodd.stilts.stomp.client::MessageHandler

      def initialize(block)
        @block = block
      end

      def handle(message)
        @block.call( StompMessage.new( message ) )
      end

    end # -- BlockMessageHandler

    class StompMessage
      def initialize(message)
        @message = message
      end

      def body
        @message.getContentAsString()
      end

    end

  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
stilts-stomp-client-0.1.40-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.38-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.37-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.36-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.35-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.34-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.33-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.31-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.30-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.29-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.28-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.27-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.25-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.24-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.23-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.22-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.21-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.18-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.17-java lib/stilts/stomp/client.rb
stilts-stomp-client-0.1.16-java lib/stilts/stomp/client.rb