freddy-jruby 0.5.6 → 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 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