You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by da...@apache.org on 2012/09/25 13:00:29 UTC

svn commit: r1389793 - /activemq/trunk/assembly/src/release/example/ruby/catstomp.rb

Author: davsclaus
Date: Tue Sep 25 11:00:29 2012
New Revision: 1389793

URL: http://svn.apache.org/viewvc?rev=1389793&view=rev
Log:
AMQ-4070: Improved ruby sample to shutdown nicely on cltr+c, and use publish. Thanks to Francesco for the patch.

Modified:
    activemq/trunk/assembly/src/release/example/ruby/catstomp.rb

Modified: activemq/trunk/assembly/src/release/example/ruby/catstomp.rb
URL: http://svn.apache.org/viewvc/activemq/trunk/assembly/src/release/example/ruby/catstomp.rb?rev=1389793&r1=1389792&r2=1389793&view=diff
==============================================================================
--- activemq/trunk/assembly/src/release/example/ruby/catstomp.rb (original)
+++ activemq/trunk/assembly/src/release/example/ruby/catstomp.rb Tue Sep 25 11:00:29 2012
@@ -1,4 +1,4 @@
-#!/usr/bin/ruby
+#!/usr/bin/env ruby
 # ------------------------------------------------------------------------
 # Licensed to the Apache Software Foundation (ASF) under one or more
 # contributor license agreements.  See the NOTICE file distributed with
@@ -19,31 +19,38 @@
 require 'rubygems'
 require 'stomp'
 
-begin
+continue = true
+
+trap("INT") {
+  puts "CTRL+C"
+  puts "shutting down ..."
+  @conn.disconnect
+  sleep 1
+  STDIN.close
+}
+
   
-    @port = 61613
-    @host = "localhost"
-    @user = ENV["STOMP_USER"];
-    @password = ENV["STOMP_PASSWORD"]
+@port = 61613
+@host = "localhost"
+@user = ENV["STOMP_USER"];
+@password = ENV["STOMP_PASSWORD"]
     
-    @host = ENV["STOMP_HOST"] if ENV["STOMP_HOST"] != NIL
-    @port = ENV["STOMP_PORT"] if ENV["STOMP_PORT"] != NIL
+@host = ENV["STOMP_HOST"] if ENV["STOMP_HOST"] != NIL
+@port = ENV["STOMP_PORT"] if ENV["STOMP_PORT"] != NIL
     
-    @destination = "/topic/stompcat"
-    @destination = $*[0] if $*[0] != NIL
+@destination = "/topic/stompcat"
+@destination = $*[0] if $*[0] != NIL
     
-    $stderr.print "Connecting to stomp://#{@host}:#{@port} as #{@user}\n"
-    @conn = Stomp::Connection.open @user, @password, @host, @port, true
-    $stderr.print "Sending input to #{@destination}\n"
-
-    @headers = {'persistent'=>'false'} 
-    @headers['reply-to'] = $*[1] if $*[1] != NIL
-
-    STDIN.each_line { |line| 
-        @conn.send @destination, line, @headers
-    }
-    @conn.disconnect
+$stderr.print "Connecting to stomp://#{@host}:#{@port} as #{@user}\n"
+@conn = Stomp::Connection.open @user, @password, @host, @port, true
+$stderr.print "Sending input to #{@destination}\n"
 
-rescue 
-end
+@headers = {'persistent'=>'false'} 
+@headers['reply-to'] = $*[1] if $*[1] != NIL
 
+begin
+  STDIN.each_line { |line| 
+    @conn.publish @destination, line, @headers
+  }
+rescue IOError
+end