pwwka 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +2 -3
- data/Gemfile.lock +25 -25
- data/README.md +8 -0
- data/lib/pwwka/configuration.rb +8 -1
- data/lib/pwwka/logging.rb +17 -0
- data/lib/pwwka/receiver.rb +3 -3
- data/lib/pwwka/transmitter.rb +7 -7
- data/lib/pwwka/version.rb +1 -1
- data/spec/logging_spec.rb +50 -0
- data/spec/receiver_spec.rb +17 -3
- data/spec/spec_helper.rb +8 -5
- data/spec/transmitter_spec.rb +23 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 374c2180b982d19cd0dcc1d6dd73abf3d80f493b
|
4
|
+
data.tar.gz: fb315b10d90d96cbb250c034fdf4a8d2f1186ac3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6fa81ed74d72ec9f7739d8e7e4cd6de94ef172b5e7d11900e3ec32f03cc3c7f13a466fefc1107d43668b29a4c123d60838839de4fd8222d2a2284b25befd2b9
|
7
|
+
data.tar.gz: 885daa6a5d3615f113064c5a906d608d76aa1916f6174665221c12dd9270dfb553c4d9c3bbc0a36879a3aec335daeec22a1132f7e7375ab69508faf477146dd8
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1
|
1
|
+
2.3.1
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
pwwka (0.
|
4
|
+
pwwka (0.6.0)
|
5
5
|
activemodel
|
6
6
|
activesupport
|
7
7
|
bunny
|
@@ -10,30 +10,30 @@ PATH
|
|
10
10
|
GEM
|
11
11
|
remote: https://www.rubygems.org/
|
12
12
|
specs:
|
13
|
-
activemodel (4.2.
|
14
|
-
activesupport (= 4.2.
|
13
|
+
activemodel (4.2.6)
|
14
|
+
activesupport (= 4.2.6)
|
15
15
|
builder (~> 3.1)
|
16
|
-
activesupport (4.2.
|
16
|
+
activesupport (4.2.6)
|
17
17
|
i18n (~> 0.7)
|
18
18
|
json (~> 1.7, >= 1.7.7)
|
19
19
|
minitest (~> 5.1)
|
20
20
|
thread_safe (~> 0.3, >= 0.3.4)
|
21
21
|
tzinfo (~> 1.1)
|
22
|
-
amq-protocol (
|
22
|
+
amq-protocol (2.0.1)
|
23
23
|
builder (3.2.2)
|
24
|
-
bunny (2.
|
25
|
-
amq-protocol (>=
|
24
|
+
bunny (2.3.1)
|
25
|
+
amq-protocol (>= 2.0.1)
|
26
26
|
diff-lcs (1.2.5)
|
27
27
|
i18n (0.7.0)
|
28
28
|
json (1.8.3)
|
29
|
-
minitest (5.8.
|
29
|
+
minitest (5.8.4)
|
30
30
|
mono_logger (1.1.0)
|
31
31
|
multi_json (1.11.2)
|
32
32
|
rack (1.6.4)
|
33
33
|
rack-protection (1.5.3)
|
34
34
|
rack
|
35
|
-
rake (10.
|
36
|
-
redis (3.2.
|
35
|
+
rake (10.5.0)
|
36
|
+
redis (3.2.2)
|
37
37
|
redis-namespace (1.5.2)
|
38
38
|
redis (~> 3.0, >= 3.0.4)
|
39
39
|
resque (1.25.2)
|
@@ -42,25 +42,25 @@ GEM
|
|
42
42
|
redis-namespace (~> 1.3)
|
43
43
|
sinatra (>= 0.9.2)
|
44
44
|
vegas (~> 0.1.2)
|
45
|
-
rspec (3.
|
46
|
-
rspec-core (~> 3.
|
47
|
-
rspec-expectations (~> 3.
|
48
|
-
rspec-mocks (~> 3.
|
49
|
-
rspec-core (3.3
|
50
|
-
rspec-support (~> 3.
|
51
|
-
rspec-expectations (3.
|
45
|
+
rspec (3.4.0)
|
46
|
+
rspec-core (~> 3.4.0)
|
47
|
+
rspec-expectations (~> 3.4.0)
|
48
|
+
rspec-mocks (~> 3.4.0)
|
49
|
+
rspec-core (3.4.3)
|
50
|
+
rspec-support (~> 3.4.0)
|
51
|
+
rspec-expectations (3.4.0)
|
52
52
|
diff-lcs (>= 1.2.0, < 2.0)
|
53
|
-
rspec-support (~> 3.
|
54
|
-
rspec-mocks (3.
|
53
|
+
rspec-support (~> 3.4.0)
|
54
|
+
rspec-mocks (3.4.1)
|
55
55
|
diff-lcs (>= 1.2.0, < 2.0)
|
56
|
-
rspec-support (~> 3.
|
57
|
-
rspec-support (3.
|
58
|
-
sinatra (1.4.
|
59
|
-
rack (~> 1.
|
56
|
+
rspec-support (~> 3.4.0)
|
57
|
+
rspec-support (3.4.1)
|
58
|
+
sinatra (1.4.7)
|
59
|
+
rack (~> 1.5)
|
60
60
|
rack-protection (~> 1.4)
|
61
61
|
tilt (>= 1.3, < 3)
|
62
62
|
thread_safe (0.3.5)
|
63
|
-
tilt (2.0.
|
63
|
+
tilt (2.0.2)
|
64
64
|
tzinfo (1.2.2)
|
65
65
|
thread_safe (~> 0.1)
|
66
66
|
vegas (0.1.11)
|
@@ -76,4 +76,4 @@ DEPENDENCIES
|
|
76
76
|
rspec
|
77
77
|
|
78
78
|
BUNDLED WITH
|
79
|
-
1.
|
79
|
+
1.12.5
|
data/README.md
CHANGED
@@ -281,6 +281,14 @@ The transmitter will likewise log an error if you use the `_safely` methods:
|
|
281
281
|
error "Error Transmitting Message on #{routing_key} -> #{payload}: #{e}"
|
282
282
|
```
|
283
283
|
|
284
|
+
If your payloads are large, you may not want to log them 2-3 times per message. In that case, you can adjust `payload_logging` in the configuration:
|
285
|
+
|
286
|
+
```ruby
|
287
|
+
Pwwka.configuration.payload_logging = :info # The default - payloads appear at INFO and above log levels
|
288
|
+
Pwwka.configuration.payload_logging = :error # Only log payloads for ERROR or FATAL messages
|
289
|
+
Pwwka.configuration.payload_logging = :fatal # Only log payloads for FATAL messages
|
290
|
+
```
|
291
|
+
|
284
292
|
### Manual monitoring
|
285
293
|
|
286
294
|
RabbitMQ has a web interface for checking out the health of connections, channels, exchanges and queues. Access it via the Heroku add-ons page for Enigma.
|
data/lib/pwwka/configuration.rb
CHANGED
@@ -4,7 +4,7 @@ module Pwwka
|
|
4
4
|
class ConfigurationError < StandardError; end
|
5
5
|
class Configuration
|
6
6
|
|
7
|
-
attr_accessor :rabbit_mq_host
|
7
|
+
attr_accessor :rabbit_mq_host
|
8
8
|
attr_accessor :topic_exchange_name
|
9
9
|
attr_accessor :delayed_exchange_name
|
10
10
|
attr_accessor :logger
|
@@ -22,6 +22,13 @@ module Pwwka
|
|
22
22
|
600, 600, 600] # longer-term outage?
|
23
23
|
end
|
24
24
|
|
25
|
+
def payload_logging
|
26
|
+
@payload_logging || :info
|
27
|
+
end
|
28
|
+
|
29
|
+
def payload_logging=(new_payload_logging_level)
|
30
|
+
@payload_logging = new_payload_logging_level
|
31
|
+
end
|
25
32
|
|
26
33
|
def allow_delayed?
|
27
34
|
options[:allow_delayed]
|
data/lib/pwwka/logging.rb
CHANGED
@@ -7,5 +7,22 @@ module Pwwka
|
|
7
7
|
Pwwka.configuration.logger
|
8
8
|
end
|
9
9
|
|
10
|
+
LEVELS = {
|
11
|
+
fatal: 5,
|
12
|
+
error: 4,
|
13
|
+
warn: 3,
|
14
|
+
info: 2,
|
15
|
+
debug: 1,
|
16
|
+
}
|
17
|
+
|
18
|
+
def logf(format,params)
|
19
|
+
level = params.delete(:at) || :info
|
20
|
+
params[:payload] = params["payload"] if params["payload"]
|
21
|
+
params[:payload] = "[omitted]" if params[:payload] && LEVELS[Pwwka.configuration.payload_logging.to_sym] > LEVELS[level.to_sym]
|
22
|
+
message = format % params
|
23
|
+
logger.send(level,message)
|
24
|
+
end
|
25
|
+
|
26
|
+
|
10
27
|
end
|
11
28
|
end
|
data/lib/pwwka/receiver.rb
CHANGED
@@ -27,9 +27,9 @@ module Pwwka
|
|
27
27
|
payload = ActiveSupport::HashWithIndifferentAccess.new(JSON.parse(payload))
|
28
28
|
handler_klass.handle!(delivery_info, properties, payload)
|
29
29
|
receiver.ack(delivery_info.delivery_tag)
|
30
|
-
|
30
|
+
logf "Processed Message on %{queue_name} -> %{payload}, %{routing_key}", queue_name: queue_name, payload: payload, routing_key: delivery_info.routing_key
|
31
31
|
rescue => e
|
32
|
-
|
32
|
+
logf "Error Processing Message on %{queue_name} -> %{payload}, %{routing_key}: %{exception}", queue_name: queue_name, payload: payload, routing_key: delivery_info.routing_key, exception: e, at: :error
|
33
33
|
# no requeue
|
34
34
|
receiver.nack(delivery_info.delivery_tag)
|
35
35
|
end
|
@@ -47,7 +47,7 @@ module Pwwka
|
|
47
47
|
queue = channel.queue(queue_name, durable: true)
|
48
48
|
queue.bind(topic_exchange, routing_key: routing_key)
|
49
49
|
queue
|
50
|
-
end
|
50
|
+
end
|
51
51
|
end
|
52
52
|
|
53
53
|
def ack(delivery_tag)
|
data/lib/pwwka/transmitter.rb
CHANGED
@@ -48,11 +48,11 @@ module Pwwka
|
|
48
48
|
else
|
49
49
|
new.send_message!(payload, routing_key)
|
50
50
|
end
|
51
|
-
|
52
|
-
|
51
|
+
logf "AFTER Transmitting Message on %{routing_key} -> %{payload}",routing_key: routing_key, payload: payload
|
52
|
+
true
|
53
53
|
rescue => e
|
54
54
|
|
55
|
-
|
55
|
+
logf "ERROR Transmitting Message on %{routing_key} -> %{payload}", routing_key: routing_key, payload: payload, at: :error
|
56
56
|
|
57
57
|
case on_error
|
58
58
|
|
@@ -92,21 +92,21 @@ module Pwwka
|
|
92
92
|
end
|
93
93
|
|
94
94
|
def send_message!(payload, routing_key)
|
95
|
-
|
95
|
+
logf "START Transmitting Message on %{routing_key} -> %{payload}", routing_key: routing_key, payload: payload
|
96
96
|
channel_connector.topic_exchange.publish(
|
97
97
|
payload.to_json,
|
98
98
|
routing_key: routing_key,
|
99
99
|
persistent: true)
|
100
100
|
channel_connector.connection_close
|
101
101
|
# if it gets this far it has succeeded
|
102
|
-
|
102
|
+
logf "END Transmitting Message on %{routing_key} -> %{payload}", routing_key: routing_key, payload: payload
|
103
103
|
true
|
104
104
|
end
|
105
105
|
|
106
106
|
|
107
107
|
def send_delayed_message!(payload, routing_key, delay_by = DEFAULT_DELAY_BY_MS)
|
108
108
|
channel_connector.raise_if_delayed_not_allowed
|
109
|
-
|
109
|
+
logf "START Transmitting Delayed Message on %{routing_key} -> %{payload}", routing_key: routing_key, payload: payload
|
110
110
|
channel_connector.create_delayed_queue
|
111
111
|
channel_connector.delayed_exchange.publish(
|
112
112
|
payload.to_json,
|
@@ -115,7 +115,7 @@ module Pwwka
|
|
115
115
|
persistent: true)
|
116
116
|
channel_connector.connection_close
|
117
117
|
# if it gets this far it has succeeded
|
118
|
-
|
118
|
+
logf "END Transmitting Delayed Message on %{routing_key} -> %{payload}", routing_key: routing_key, payload: payload
|
119
119
|
true
|
120
120
|
end
|
121
121
|
|
data/lib/pwwka/version.rb
CHANGED
data/spec/logging_spec.rb
CHANGED
@@ -16,4 +16,54 @@ describe Pwwka::Logging do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
end
|
19
|
+
|
20
|
+
describe "#logf" do
|
21
|
+
let(:logger) { double(Logger) }
|
22
|
+
|
23
|
+
before do
|
24
|
+
@original_logger = Pwwka.configuration.logger
|
25
|
+
Pwwka.configuration.logger = logger
|
26
|
+
allow(logger).to receive(:info)
|
27
|
+
allow(logger).to receive(:error)
|
28
|
+
end
|
29
|
+
|
30
|
+
after do
|
31
|
+
Pwwka.configuration.logger = @original_logger
|
32
|
+
Pwwka.configuration.payload_logging = @original_payload_logging
|
33
|
+
end
|
34
|
+
it "logs a printf-style string at info" do
|
35
|
+
ForLogging.logf("This is %{test} some %{data}", test: "a test of", data: "data and stuff", ignored: :hopefully)
|
36
|
+
expect(logger).to have_received(:info).with("This is a test of some data and stuff")
|
37
|
+
end
|
38
|
+
|
39
|
+
it "can log an not-info" do
|
40
|
+
ForLogging.logf("This is %{test} some %{data}", test: "a test of", data: "data and stuff", ignored: :hopefully, at: :error)
|
41
|
+
expect(logger).to have_received(:error).with("This is a test of some data and stuff")
|
42
|
+
expect(logger).not_to have_received(:info)
|
43
|
+
end
|
44
|
+
|
45
|
+
context "payload-stripping" do
|
46
|
+
[
|
47
|
+
:payload,
|
48
|
+
"payload",
|
49
|
+
].each do |name|
|
50
|
+
it "will strip payload (given as a #{name.class}) if configured" do
|
51
|
+
Pwwka.configuration.payload_logging = :error
|
52
|
+
ForLogging.logf("This is the payload: %{payload}", name => { foo: "bar" })
|
53
|
+
ForLogging.logf("This is also the payload: %{payload}", name => { foo: "bar" }, at: :error)
|
54
|
+
expect(logger).to have_received(:info).with("This is the payload: [omitted]")
|
55
|
+
expect(logger).to have_received(:error).with("This is also the payload: {:foo=>\"bar\"}")
|
56
|
+
end
|
57
|
+
|
58
|
+
it "will strip payload (given as a #{name.class}) of errors, too" do
|
59
|
+
Pwwka.configuration.payload_logging = :fatal
|
60
|
+
ForLogging.logf("This is the payload: %{payload}", name => { foo: "bar" })
|
61
|
+
ForLogging.logf("This is also the payload: %{payload}", name => { foo: "bar" }, at: :error)
|
62
|
+
expect(logger).to have_received(:info).with("This is the payload: [omitted]")
|
63
|
+
expect(logger).to have_received(:error).with("This is also the payload: [omitted]")
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
19
69
|
end
|
data/spec/receiver_spec.rb
CHANGED
@@ -8,23 +8,32 @@ describe Pwwka::Receiver do
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
let(:payload) {
|
11
|
+
let(:payload) { { "this" => "that" } }
|
12
12
|
let(:routing_key) { "this.that" }
|
13
13
|
let(:queue_name) { "receiver_test" }
|
14
|
+
let(:logger) { double(Logger) }
|
14
15
|
|
15
16
|
describe "::subscribe" do
|
16
17
|
|
17
18
|
before(:each) do
|
19
|
+
@original_logger = Pwwka.configuration.logger
|
20
|
+
Pwwka.configuration.logger = logger
|
21
|
+
allow(logger).to receive(:info)
|
22
|
+
allow(logger).to receive(:error)
|
18
23
|
@receiver = Pwwka::Receiver.subscribe(HandyHandler, "receiver_test", block: false)
|
19
24
|
end
|
20
25
|
|
21
26
|
after(:each) do
|
22
|
-
@
|
27
|
+
Pwwka.configuration.logger = @original_logger
|
28
|
+
@receiver.test_teardown rescue nil
|
23
29
|
end
|
24
30
|
|
25
|
-
it "should receive the sent message" do
|
31
|
+
it "should receive the sent message and log about it" do
|
26
32
|
expect(HandyHandler).to receive(:handle!).and_return("made it here")
|
27
33
|
Pwwka::Transmitter.send_message!(payload, routing_key)
|
34
|
+
expect(logger).to have_received(:info).with(/START Transmitting.*#{Regexp.escape(payload.to_s)}/)
|
35
|
+
expect(logger).to have_received(:info).with(/END Transmitting.*#{Regexp.escape(payload.to_s)}/)
|
36
|
+
expect(logger).to have_received(:info).with(/AFTER Transmitting.*#{Regexp.escape(payload.to_s)}/)
|
28
37
|
end
|
29
38
|
|
30
39
|
it "should nack the sent message if an error is raised" do
|
@@ -32,6 +41,11 @@ describe Pwwka::Receiver do
|
|
32
41
|
expect(@receiver).not_to receive(:ack)
|
33
42
|
expect(@receiver).to receive(:nack).with(instance_of(Fixnum))
|
34
43
|
Pwwka::Transmitter.send_message!(payload, routing_key)
|
44
|
+
@receiver.test_teardown # force the message to be processed and exception handled
|
45
|
+
expect(logger).to have_received(:info).with(/START Transmitting.*#{Regexp.escape(payload.to_s)}/)
|
46
|
+
expect(logger).to have_received(:info).with(/END Transmitting.*#{Regexp.escape(payload.to_s)}/)
|
47
|
+
expect(logger).to have_received(:info).with(/AFTER Transmitting.*#{Regexp.escape(payload.to_s)}/)
|
48
|
+
expect(logger).to have_received(:error).with(/Error Processing Message.*#{Regexp.escape(payload.to_s)}/)
|
35
49
|
end
|
36
50
|
|
37
51
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,10 +10,13 @@ RSpec.configure do |config|
|
|
10
10
|
c.syntax = :expect
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
config.before(:each) do
|
14
|
+
Pwwka.configure do |c|
|
15
|
+
c.topic_exchange_name = "topics-test"
|
16
|
+
c.logger = MonoLogger.new("/dev/null")
|
17
|
+
c.options[:allow_delayed] = true
|
18
|
+
end
|
19
|
+
end
|
14
20
|
|
15
|
-
Pwwka.configure do |config|
|
16
|
-
config.topic_exchange_name = "topics-test"
|
17
|
-
config.logger = MonoLogger.new("/dev/null")
|
18
|
-
config.options[:allow_delayed] = true
|
19
21
|
end
|
22
|
+
|
data/spec/transmitter_spec.rb
CHANGED
@@ -10,10 +10,22 @@ describe Pwwka::Transmitter do
|
|
10
10
|
after(:each) { @test_handler.purge_test_queue }
|
11
11
|
after(:all) { @test_handler.test_teardown }
|
12
12
|
|
13
|
-
let(:payload) {
|
13
|
+
let(:payload) { { "this" => "that" } }
|
14
14
|
let(:routing_key) { "this.that.and.theother" }
|
15
15
|
let(:exception) { RuntimeError.new('blow up')}
|
16
|
+
let(:logger) { double(Logger) }
|
17
|
+
|
18
|
+
before(:each) do
|
19
|
+
@original_logger = Pwwka.configuration.logger
|
20
|
+
Pwwka.configuration.logger = logger
|
21
|
+
allow(logger).to receive(:info)
|
22
|
+
allow(logger).to receive(:warn)
|
23
|
+
allow(logger).to receive(:error)
|
24
|
+
end
|
16
25
|
|
26
|
+
after(:each) do
|
27
|
+
Pwwka.configuration.logger = @original_logger
|
28
|
+
end
|
17
29
|
|
18
30
|
describe "#send_message!" do
|
19
31
|
|
@@ -23,6 +35,8 @@ describe Pwwka::Transmitter do
|
|
23
35
|
expect(success).to be_truthy
|
24
36
|
received_payload = @test_handler.pop_message.payload
|
25
37
|
expect(received_payload["this"]).to eq("that")
|
38
|
+
expect(logger).to have_received(:info).with("START Transmitting Message on #{routing_key} -> #{payload}")
|
39
|
+
expect(logger).to have_received(:info).with("END Transmitting Message on #{routing_key} -> #{payload}")
|
26
40
|
end
|
27
41
|
|
28
42
|
it "should deliver on the expected routing key" do
|
@@ -34,10 +48,12 @@ describe Pwwka::Transmitter do
|
|
34
48
|
end
|
35
49
|
|
36
50
|
it "should blow up if exception raised" do
|
37
|
-
|
51
|
+
expect_any_instance_of(Pwwka::ChannelConnector).to receive(:topic_exchange).and_raise(exception)
|
38
52
|
expect {
|
39
53
|
Pwwka::Transmitter.new.send_message!(payload, routing_key)
|
40
54
|
}.to raise_error(exception)
|
55
|
+
expect(logger).to have_received(:info).with("START Transmitting Message on #{routing_key} -> #{payload}")
|
56
|
+
expect(logger).not_to have_received(:info).with("END Transmitting Message on #{routing_key} -> #{payload}")
|
41
57
|
end
|
42
58
|
|
43
59
|
end
|
@@ -53,6 +69,8 @@ describe Pwwka::Transmitter do
|
|
53
69
|
expect(@test_handler.test_queue.message_count).to eq(1)
|
54
70
|
received_payload = @test_handler.pop_message.payload
|
55
71
|
expect(received_payload["this"]).to eq("that")
|
72
|
+
expect(logger).to have_received(:info).with("START Transmitting Delayed Message on #{routing_key} -> #{payload}")
|
73
|
+
expect(logger).to have_received(:info).with("END Transmitting Delayed Message on #{routing_key} -> #{payload}")
|
56
74
|
end
|
57
75
|
|
58
76
|
it "should deliver on the expected routing key" do
|
@@ -65,10 +83,12 @@ describe Pwwka::Transmitter do
|
|
65
83
|
end
|
66
84
|
|
67
85
|
it "should blow up if exception raised" do
|
68
|
-
|
86
|
+
expect_any_instance_of(Pwwka::ChannelConnector).to receive(:create_delayed_queue).and_raise(exception)
|
69
87
|
expect {
|
70
88
|
Pwwka::Transmitter.new.send_delayed_message!(payload, routing_key, 1)
|
71
89
|
}.to raise_error(exception)
|
90
|
+
expect(logger).to have_received(:info).with("START Transmitting Delayed Message on #{routing_key} -> #{payload}")
|
91
|
+
expect(logger).not_to have_received(:info).with("END Transmitting Delayed Message on #{routing_key} -> #{payload}")
|
72
92
|
end
|
73
93
|
|
74
94
|
context "delayed not configured" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pwwka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stitch Fix Engineering
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date:
|
18
|
+
date: 2016-09-14 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: bunny
|
@@ -188,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
188
|
version: '0'
|
189
189
|
requirements: []
|
190
190
|
rubyforge_project:
|
191
|
-
rubygems_version: 2.
|
191
|
+
rubygems_version: 2.6.6
|
192
192
|
signing_key:
|
193
193
|
specification_version: 4
|
194
194
|
summary: Send and receive messages via RabbitMQ
|