freddy-jruby 0.5.6 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b6494076ba5683b88c6381cd4fe89140d4cb877
4
- data.tar.gz: 8dcea8a4f75bba5192ec372998a822f9fbc4ab70
3
+ metadata.gz: bcd002e379a1f9326e97c95617e8027065403fcc
4
+ data.tar.gz: 2982e7fae24ee6ba8e763be8426d86806406e2da
5
5
  SHA512:
6
- metadata.gz: 4d05477dbd8e2aec9e0e4044edef0720dfaad0c96f9c2ece269c32388fb412332c0573ff44fc7926885bcafa4fa0e4c9895f7f17abadc9768b81cda3579de4fd
7
- data.tar.gz: e49f5287155ad988a10474366f13e9b371712abedd9f6c3f46082d5ae57a73f2f1b78cfe04b42131e96e2a30b2a67af933be83322642d7325ebde0ffcf40e4a1
6
+ metadata.gz: d4f642d80cbb81bd9150c1cac643d4a919b18ada01cc40ad42e3c26cbc394d1f3491ac11a529243da39aeec7c1e4cc5c3d66699178ed4dc29cf6fdf4b36788be
7
+ data.tar.gz: d02a32438c611aea42a2d242b7d59d1abfa73fb42a7ac1f17ebb3542059eccffb341b6bc078a822900f9112ee30d6e9615a41d52322fdf88478b7e91681bf113
data/freddy.gemspec CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  else
9
9
  spec.name = "freddy"
10
10
  end
11
- spec.version = '0.5.6'
11
+ spec.version = '0.6.0'
12
12
  spec.authors = ["Urmas Talimaa"]
13
13
  spec.email = ["urmas.talimaa@gmail.com"]
14
14
  spec.description = %q{Messaging API}
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_dependency 'march_hare', '~> 2.12.0'
28
28
  spec.add_dependency 'symbolizer'
29
29
  else
30
- spec.add_dependency "bunny", "2.2.0"
30
+ spec.add_dependency "bunny", "~> 2.5.0"
31
31
  spec.add_dependency "oj", "~> 2.13"
32
32
  end
33
33
 
@@ -1,11 +1,12 @@
1
1
  class Freddy
2
2
  module Consumers
3
3
  def self.log_receive_event(logger, queue_name, delivery)
4
- if defined?(Logasm) && logger.is_a?(Logasm)
5
- logger.debug "Received message", queue: queue_name, payload: delivery.payload, correlation_id: delivery.correlation_id
6
- else
7
- logger.debug "Received message on #{queue_name} with payload #{delivery.payload} with correlation_id #{delivery.correlation_id}"
8
- end
4
+ logger.debug(
5
+ message: 'Received message',
6
+ queue: queue_name,
7
+ payload: delivery.payload,
8
+ correlation_id: delivery.correlation_id
9
+ )
9
10
  end
10
11
  end
11
12
  end
@@ -1 +1,9 @@
1
+ class Freddy
2
+ module Producers
3
+ def self.log_send_event(logger, payload, destination)
4
+ logger.debug message: 'Sending message', queue: destination, payload: payload
5
+ end
6
+ end
7
+ end
8
+
1
9
  Dir[File.dirname(__FILE__) + '/producers/*.rb'].each(&method(:require))
@@ -9,7 +9,7 @@ class Freddy
9
9
  end
10
10
 
11
11
  def produce(destination, payload, properties)
12
- @logger.debug "Sending message #{payload.inspect} to #{destination}"
12
+ Producers.log_send_event(@logger, payload, destination)
13
13
 
14
14
  properties = properties.merge(
15
15
  routing_key: destination, content_type: CONTENT_TYPE
@@ -10,7 +10,7 @@ class Freddy
10
10
  end
11
11
 
12
12
  def produce(destination, payload, properties)
13
- @logger.debug "Sending message #{payload.inspect} to #{destination}"
13
+ Producers.log_send_event(@logger, payload, destination)
14
14
 
15
15
  properties = properties.merge(routing_key: destination, content_type: CONTENT_TYPE)
16
16
  json_payload = Payload.dump(payload)
@@ -45,9 +45,13 @@ class Freddy
45
45
  )
46
46
  json_payload = Payload.dump(payload)
47
47
 
48
- @logger.debug "Publishing request with payload #{payload.inspect} "\
49
- "to #{destination}, waiting for response on "\
50
- "#{@response_queue.name} with correlation_id #{correlation_id}"
48
+ @logger.debug(
49
+ message: 'Publishing request',
50
+ queue: destination,
51
+ payload: payload,
52
+ response_queue: @response_queue.name,
53
+ correlation_id: correlation_id
54
+ )
51
55
 
52
56
  # Connection adapters handle thread safety for #publish themselves. No
53
57
  # need to lock these.
@@ -63,10 +67,9 @@ class Freddy
63
67
  if request = @request_manager.delete(correlation_id)
64
68
  process_response(request, delivery)
65
69
  else
66
- warning = "Got rpc response for correlation_id #{correlation_id} "\
70
+ message = "Got rpc response for correlation_id #{correlation_id} "\
67
71
  "but there is no requester"
68
72
  @logger.warn message
69
- Utils.notify 'NoRequesterForResponse', warning, correlation_id: correlation_id
70
73
  end
71
74
  end
72
75
 
@@ -81,14 +84,6 @@ class Freddy
81
84
  @logger.warn "Request timed out waiting response from #{destination}"\
82
85
  ", correlation id #{correlation_id}"
83
86
 
84
- Utils.notify 'RequestTimeout',
85
- "Request timed out waiting for response from #{destination}",
86
- {
87
- correlation_id: correlation_id,
88
- destination: destination,
89
- timeout_in_seconds: timeout_in_seconds
90
- }
91
-
92
87
  @request_manager.delete(correlation_id)
93
88
  end
94
89
  end
@@ -24,14 +24,21 @@ describe 'Logging' do
24
24
  it 'logs all consumed messages' do
25
25
  expect(logger1).to have_received(:info).with(/Listening for requests on \S+/)
26
26
  expect(logger1).to have_received(:debug).with(
27
- /Received message on \S+ with payload {:pay=>"load"}/
27
+ message: 'Received message',
28
+ queue: destination,
29
+ payload: payload,
30
+ correlation_id: anything
28
31
  )
29
32
  end
30
33
 
31
34
  it 'logs all produced messages' do
32
35
  expect(logger2).to have_received(:debug).with(/Consuming messages on \S+/)
33
36
  expect(logger2).to have_received(:debug).with(
34
- /Publishing request with payload {:pay=>"load"} to \S+, waiting for response on amq.gen-\S+ with correlation_id .*/
37
+ message: 'Publishing request',
38
+ queue: destination,
39
+ payload: payload,
40
+ response_queue: anything,
41
+ correlation_id: anything
35
42
  )
36
43
  end
37
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: freddy-jruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Urmas Talimaa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-26 00:00:00.000000000 Z
11
+ date: 2016-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -134,15 +134,12 @@ files:
134
134
  - lib/freddy/responder_handler.rb
135
135
  - lib/freddy/sync_response_container.rb
136
136
  - lib/freddy/timeout_error.rb
137
- - lib/freddy/utils.rb
138
137
  - spec/freddy/consumers/respond_to_consumer_spec.rb
139
- - spec/freddy/consumers_spec.rb
140
138
  - spec/freddy/error_response_spec.rb
141
139
  - spec/freddy/freddy_spec.rb
142
140
  - spec/freddy/message_handler_spec.rb
143
141
  - spec/freddy/responder_handler_spec.rb
144
142
  - spec/freddy/sync_response_container_spec.rb
145
- - spec/freddy/utils_spec.rb
146
143
  - spec/integration/concurrency_spec.rb
147
144
  - spec/integration/logging_spec.rb
148
145
  - spec/integration/reply_spec.rb
@@ -173,13 +170,11 @@ specification_version: 4
173
170
  summary: API for inter-application messaging supporting acknowledgements and request-response
174
171
  test_files:
175
172
  - spec/freddy/consumers/respond_to_consumer_spec.rb
176
- - spec/freddy/consumers_spec.rb
177
173
  - spec/freddy/error_response_spec.rb
178
174
  - spec/freddy/freddy_spec.rb
179
175
  - spec/freddy/message_handler_spec.rb
180
176
  - spec/freddy/responder_handler_spec.rb
181
177
  - spec/freddy/sync_response_container_spec.rb
182
- - spec/freddy/utils_spec.rb
183
178
  - spec/integration/concurrency_spec.rb
184
179
  - spec/integration/logging_spec.rb
185
180
  - spec/integration/reply_spec.rb
data/lib/freddy/utils.rb DELETED
@@ -1,30 +0,0 @@
1
- class Freddy
2
- class Utils
3
- def self.format_exception(exception)
4
- message = exception.message
5
- backtrace = exception.backtrace.join("\n")
6
-
7
- "#{message}\n#{backtrace}"
8
- end
9
-
10
- def self.notify(name, message, parameters={})
11
- return unless defined?(Airbrake)
12
-
13
- Airbrake.notify_or_ignore(
14
- error_class: name,
15
- error_message: message,
16
- cgi_data: ENV.to_hash,
17
- parameters: parameters
18
- )
19
- end
20
-
21
- def self.notify_exception(exception, parameters={})
22
- return unless defined?(Airbrake)
23
-
24
- Airbrake.notify_or_ignore(exception,
25
- cgi_data: ENV.to_hash,
26
- parameters: parameters
27
- )
28
- end
29
- end
30
- end
@@ -1,43 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Freddy::Consumers do
4
- describe '.log_receive_event' do
5
- subject { described_class.log_receive_event(logger, queue_name, delivery) }
6
-
7
- let(:queue_name) { 'salemove' }
8
- let(:delivery) do
9
- instance_double(Freddy::Delivery,
10
- payload: {key: 'value'},
11
- correlation_id: 'a1b2'
12
- )
13
- end
14
-
15
- context 'when configured with logasm logger' do
16
- let(:logger) { logasm_class.new }
17
- let(:logasm_class) { Class.new }
18
-
19
- before do
20
- stub_const('::Logasm', logasm_class)
21
- end
22
-
23
- it 'logs the received event' do
24
- expect(logger).to receive(:debug).with('Received message',
25
- queue: 'salemove', payload: {key: 'value'}, correlation_id: 'a1b2'
26
- )
27
-
28
- subject
29
- end
30
- end
31
-
32
- context 'when configured with regular logger' do
33
- let(:logger) { Logger.new('/dev/null') }
34
-
35
- it 'logs the received event' do
36
- expect(logger).to receive(:debug)
37
- .with('Received message on salemove with payload {:key=>"value"} with correlation_id a1b2')
38
-
39
- subject
40
- end
41
- end
42
- end
43
- end
@@ -1,83 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Freddy::Utils do
4
- describe '.format_exception' do
5
- subject { described_class.format_exception(exception) }
6
-
7
- let(:exception) { double(backtrace: backtrace, message: message) }
8
- let(:message) { 'format exception test' }
9
- let(:backtrace) { ['line1', 'line2', 'line3'] }
10
-
11
- it 'format the exception' do
12
- should eq "format exception test\n" \
13
- "line1\n" \
14
- "line2\n" \
15
- 'line3'
16
- end
17
- end
18
-
19
- describe '.notify' do
20
- subject { described_class.notify(error_class, error_message, parameters) }
21
-
22
- let(:env_attributes) { double }
23
- let(:error_class) { double }
24
- let(:error_message) { double }
25
- let(:parameters) { double }
26
-
27
- context 'when Airbrake is defined' do
28
- let(:airbrake) { double }
29
-
30
- before do
31
- allow(ENV).to receive(:to_hash) { env_attributes }
32
- stub_const('::Airbrake', airbrake)
33
- end
34
-
35
- it 'notifies airbrake' do
36
- expect(airbrake).to receive(:notify_or_ignore).with(
37
- error_class: error_class,
38
- error_message: error_message,
39
- cgi_data: env_attributes,
40
- parameters: parameters
41
- )
42
-
43
- subject
44
- end
45
- end
46
-
47
- context 'when Airbrake is not defined' do
48
- it 'does nothing' do
49
- should eq(nil)
50
- end
51
- end
52
- end
53
-
54
- describe '.notify_exception' do
55
- subject { described_class.notify_exception(exception, {a: 'b'}) }
56
-
57
- let(:exception) { double }
58
-
59
- context 'when Airbrake is defined' do
60
- let(:airbrake) { double }
61
-
62
- before do
63
- stub_const('::Airbrake', airbrake)
64
- end
65
-
66
- it 'notifies airbrake' do
67
- expect(airbrake).to receive(:notify_or_ignore) do |ex, content|
68
- expect(ex).to eq(exception)
69
- expect(content[:cgi_data]).to be_instance_of(Hash)
70
- expect(content[:parameters]).to eq(a: 'b')
71
- end
72
-
73
- subject
74
- end
75
- end
76
-
77
- context 'when Airbrake is not defined' do
78
- it 'does nothing' do
79
- should eq(nil)
80
- end
81
- end
82
- end
83
- end