rmq 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -776,6 +776,7 @@ module RMQ
776
776
  def decode_reason_code(reason_code)
777
777
  reason_codes = {
778
778
  0 => :MQRC_NONE,
779
+ 2002 => :MQRC_ALREADY_CONNECTED,
779
780
  2019 => :MQRC_HOBJ_ERROR,
780
781
  2033 => :MQRC_NO_MSG_AVAILABLE,
781
782
  2037 => :MQRC_NOT_OPEN_FOR_INPUT,
@@ -22,6 +22,7 @@ module RMQ
22
22
  :Persistence, :long,
23
23
  :MsgId, [:char, 24],
24
24
  :CorrelId, [:char, 24],
25
+ :BackoutCount, :long,
25
26
  :ReplyToQ, [:char, 48],
26
27
  :ReplyToQMgr, [:char, 48],
27
28
  :UserIdentifier, [:char, 12],
@@ -210,7 +210,7 @@ module RMQ
210
210
  raise RMQException.new(completion_code_ptr.read_long, reason_code_ptr.read_long), "Cannot close queue" if completion_code_ptr.read_long != MQCC_OK
211
211
  end
212
212
 
213
- def put_message_on_queue(connection_handle, queue_handle, payload)
213
+ def put_message_on_queue(connection_handle, queue_handle, payload, reply_queue_name = "")
214
214
  message_options = MQClient::PutMessageOptions.new
215
215
  message_options[:StrucId] = MQClient::PutMessageOptions::MQPMO_STRUC_ID
216
216
  message_options[:Version] = MQClient::PutMessageOptions::MQPMO_VERSION_1
@@ -223,7 +223,7 @@ module RMQ
223
223
  message_descriptor[:MsgType] = MQClient::MessageDescriptor::MQMT_DATAGRAM
224
224
  message_descriptor[:Priority] = 1
225
225
  message_descriptor[:Persistence] = MQClient::MessageDescriptor::MQPER_PERSISTENT
226
- message_descriptor[:ReplyToQ] = ""
226
+ message_descriptor[:ReplyToQ] = reply_queue_name
227
227
 
228
228
  completion_code_ptr = FFI::MemoryPointer.new :long
229
229
  reason_code_ptr = FFI::MemoryPointer.new :long
@@ -9,10 +9,10 @@ module RMQ
9
9
  @queue_name = name
10
10
  end
11
11
 
12
- def put_message(payload)
12
+ def put_message(payload, reply_queue_name = "")
13
13
  @queue_handle = open_queue(@queue_manager.connection_handle, @queue_name, Constants::MQOO_OUTPUT) if @queue_handle.nil?
14
14
 
15
- put_message_on_queue(@queue_manager.connection_handle, @queue_handle, payload)
15
+ put_message_on_queue(@queue_manager.connection_handle, @queue_handle, payload, reply_queue_name)
16
16
 
17
17
  close_queue(@queue_manager.connection_handle, @queue_handle, Constants::MQCO_NONE)
18
18
  @queue_handle = nil
@@ -19,6 +19,8 @@ module RMQ
19
19
  end
20
20
 
21
21
  def connect
22
+ raise "Please set MQSERVER environment variable before trying to connect to a queue manager" if ENV['MQSERVER'].empty?
23
+
22
24
  hconn_ptr = FFI::MemoryPointer.new :long
23
25
  completion_code_ptr = FFI::MemoryPointer.new :long
24
26
  reason_code_ptr = FFI::MemoryPointer.new :long
@@ -1,3 +1,3 @@
1
1
  module RMQ
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -19,6 +19,12 @@ describe RMQ::QueueManager do
19
19
  lambda { RMQ::QueueManager::connect("INVALID_NAME") }.should raise_error(RMQ::RMQException)
20
20
  end
21
21
 
22
+ it "should warn about missing MQSERVER environment variable" do
23
+ ENV['MQSERVER'] = ""
24
+
25
+ lambda { RMQ::QueueManager::connect(SpecHelper::DATA[:queue_manager]) }.should raise_error(RuntimeError)
26
+ end
27
+
22
28
  it "should create a new queue" do
23
29
  @qm = RMQ::QueueManager::connect(SpecHelper::DATA[:queue_manager])
24
30
  queue = @qm.create_queue("RMQ.SAMPLE")
@@ -24,4 +24,8 @@ describe RMQ::Queue do
24
24
  @queue.get_message.should == "I want to read this back"
25
25
  end
26
26
 
27
+ it "should put a message on a queue and use a reply queue name" do
28
+
29
+ end
30
+
27
31
  end
@@ -1,7 +1,7 @@
1
1
  require 'rspec'
2
2
  require 'rmq'
3
3
 
4
- ENV['MQSERVER'] = "SYSTEM.DEF.SVRCONN/TCP/127.0.0.1(1414)"
4
+ MQSERVER = "SYSTEM.DEF.SVRCONN/TCP/127.0.0.1(1414)"
5
5
 
6
6
  module SpecHelper
7
7
  DATA = {
@@ -12,4 +12,8 @@ end
12
12
  RSpec.configure do |config|
13
13
  config.color_enabled = true
14
14
  config.formatter = 'documentation'
15
+
16
+ config.before(:each) do
17
+ ENV['MQSERVER'] = MQSERVER
18
+ end
15
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-02-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &22394232 !ruby/object:Gem::Requirement
16
+ requirement: &21388056 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '2.7'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *22394232
24
+ version_requirements: *21388056
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: ffi
27
- requirement: &22393944 !ruby/object:Gem::Requirement
27
+ requirement: &21387768 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *22393944
35
+ version_requirements: *21387768
36
36
  description: Ruby wrapper around MQ series client library
37
37
  email: sns@caimito.net
38
38
  executables: []