pipeline_toolkit 1.2.22 → 1.2.23
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +9 -0
- data/lib/pipeline_toolkit/amqp/abstract.rb +1 -0
- data/lib/pipeline_toolkit/amqp/reader.rb +1 -1
- data/lib/pipeline_toolkit/cucumber/amqp.rb +4 -3
- data/lib/pipeline_toolkit/cucumber/amqp_steps.rb +5 -0
- data/lib/pipeline_toolkit/message_command.rb +3 -0
- data/lib/pipeline_toolkit/message_sink.rb +1 -1
- metadata +3 -3
data/README.markdown
CHANGED
@@ -140,3 +140,12 @@ To make the steps available to your application's cucumber features simply put t
|
|
140
140
|
* Tidy up logging. Feels horrible that we're insisting that SysLogger is used. Want to abstract this out and let user decide which logging framework to use. Also we're hard coding that logs are output to ~/pipeline_toolkit. yuk.
|
141
141
|
|
142
142
|
* Add tmp path as a argument (hardcoded to /tmp at mo)
|
143
|
+
|
144
|
+
* Tidy up error handling. Should raise custom (and more descriptive) error messages. Particularly for broken pipes
|
145
|
+
|
146
|
+
* Refactor /lib/amqp modules. Don't like it how they assume an 'options' variable exists
|
147
|
+
|
148
|
+
* Write tests around queue setup for msg_push and msg_sub
|
149
|
+
|
150
|
+
|
151
|
+
|
@@ -94,6 +94,7 @@ module PipelineToolkit
|
|
94
94
|
# routing messages depending on the exchange configuration.
|
95
95
|
#
|
96
96
|
def bind_queue(routing_key = '')
|
97
|
+
routing_key = options[:queue].split(":").last if options[:queue] && options[:queue].include?(":")
|
97
98
|
DefaultLogger.debug("Amqp::Abstract#bind_queue(routing_key = '')") if options[:env] == "development"
|
98
99
|
unless routing_key.nil? || routing_key.empty?
|
99
100
|
@queue.bind(@exchange, :key => routing_key)
|
@@ -29,11 +29,12 @@ module PipelineToolkit
|
|
29
29
|
@mq.queue(queue).status[:message_count]
|
30
30
|
end
|
31
31
|
|
32
|
-
def send_messages(exchange, messages)
|
33
|
-
exchange = @mq.exchange(exchange, :type =>
|
32
|
+
def send_messages(exchange, messages, exchange_type = :fanout)
|
33
|
+
exchange = @mq.exchange(exchange, :passive => true, :type => exchange_type)
|
34
34
|
messages.each do |message|
|
35
|
+
opts = message.has_key?('routing_key') ? {:key => message['routing_key']} : {}
|
35
36
|
message.default = nil
|
36
|
-
exchange.publish(MessageCoder.encode(message))
|
37
|
+
exchange.publish(MessageCoder.encode(message), opts)
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
@@ -17,6 +17,11 @@ When /^I input these messages to exchange "(\w+)":$/ do |queue, messages|
|
|
17
17
|
@amqp.send_messages(queue, input_messages)
|
18
18
|
end
|
19
19
|
|
20
|
+
When /^I input these messages to exchange "(\w+)" of type "(\w+)":$/ do |queue, type, messages|
|
21
|
+
input_messages = messages.hashes
|
22
|
+
@amqp.send_messages(queue, input_messages, type.to_sym)
|
23
|
+
end
|
24
|
+
|
20
25
|
Then /^these messages are on queue "(\w+)":$/ do |queue, expected_messages|
|
21
26
|
received_messages = @amqp.receive_messages(queue, expected_messages.rows.size)
|
22
27
|
expected_messages.diff!(received_messages.map! { |h| h.keys_and_values_as_strings } )
|
@@ -13,7 +13,7 @@ module PipelineToolkit
|
|
13
13
|
|
14
14
|
# Sort key order
|
15
15
|
def format_message(message)
|
16
|
-
message = message.sort { |a, b| a[0].to_s <=>
|
16
|
+
message = message.sort { |a, b| a[0].to_s <=> b[0].to_s }
|
17
17
|
str = "{"
|
18
18
|
message.each_with_index do |item, i|
|
19
19
|
str << "#{item[0].inspect}:#{item[1].inspect}"
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 1.2.
|
8
|
+
- 23
|
9
|
+
version: 1.2.23
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Aisha Fenton
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-08 00:00:00 +12:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|