banter 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YjNmODc0ZTMwNjliZGQ1ZDg4MmU2YjNjNGU5NmUwMjgzY2NlZjY1Mw==
5
- data.tar.gz: !binary |-
6
- YTQzM2Y1NzQ2YThkZTNkMzhhMjk4NGRmMWU5MTJhOTk3ZmE2NTlkOA==
2
+ SHA1:
3
+ metadata.gz: cd09b360f3b05bd5eface4120f9d009441365f68
4
+ data.tar.gz: 29d94a28bcebce70d175d53e16ca6173b75b05f9
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZTY2OTk1OGFmNTU2M2RkOWQxYzBiYzlhODIyNjVlOTRkMThkZDhkNDUzNTcw
10
- OTMxOTM0MjFhNjkwN2Y3MTllNzlhNjM3ZWYzNzkyODBlM2ZmZDI0NzM4OWNk
11
- MzRjM2FjZTU1NjE3NDRkNTc2YmU5NTcyYTcwZDAzMGRiMDg0NDA=
12
- data.tar.gz: !binary |-
13
- MzU2MjY4ODU0NTYwOTNmYmU5MGE5NzI2ODJmNTA0MmJmYTUyYjJlOThhMjA3
14
- MTNiYTUyMjc1N2NhYjcwZjI0MTg0MmJlMTYxOWVmMTljYjAwZDBiY2ZmMjM5
15
- NWE2MTBmMjIyMGEwM2VkODZmMWM2Y2U0NzJkMzBhMmQ4MzkwODA=
6
+ metadata.gz: dc29fc38a2604b657ff4ff8e103cb33c591bfd15e0a58a96105d35f879a404e4a1b09aa26c1f93239b371829476cc62817ace3c1593120d8027f7901a736f7fb
7
+ data.tar.gz: 0f94f10f1627c52cbc79be446544311f722eb1dbbee5cac85276453f9e942619dda5e208d45b5c321b0f7a0247a0b69fd8fbd9af971e8bd5b5b49c03b04eacc9
@@ -47,7 +47,7 @@ module Banter
47
47
  def self.configure_with(environment_name, yaml_file = nil)
48
48
  @@yaml_file = yaml_file.nil? ? "config/banter.yml" : yaml_file
49
49
  @@all_conf = Hashie::Mash.new(YAML.load_file(@@yaml_file) )
50
- @@conf = @@all_conf[environment_name.to_sym]
50
+ @@conf = @@all_conf[environment_name]
51
51
  self
52
52
  end
53
53
 
@@ -26,12 +26,12 @@ module Banter
26
26
 
27
27
  def parse(envelope)
28
28
  contents = Hashie::Mash.new(::JSON.parse(envelope))
29
- @ts = contents[:ts]
30
- @pub = contents[:pub]
29
+ @ts = contents.ts
30
+ @pub = contents.pub
31
31
  # Version used for messaging can get updated if we need to add extra header information, and need
32
32
  # to move each section of the library separately.
33
- @version = contents[:v]
34
- @payload = contents[:payload]
33
+ @version = contents.v
34
+ @payload = contents.payload
35
35
  @context = ::Banter::Context.from_json(contents[:context])
36
36
  to_hash
37
37
  end
@@ -32,7 +32,7 @@ module Banter
32
32
 
33
33
  def message_received(delivery_info, properties, envelope)
34
34
  Banter::RabbitLogger.log(::Logger::DEBUG, "Message received by listener on #{worker_class.name} with payload: #{envelope[:payload]}")
35
- worker = worker_class.new(delivery_info, properties, envelope[:context])
35
+ worker = worker_class.new(delivery_info, properties, envelope[:context])
36
36
  payload = envelope[:payload]
37
37
  track_message_received(worker, payload)
38
38
  worker.perform!(payload)
@@ -40,21 +40,25 @@ module Banter
40
40
  rescue ::Banter::PayloadValidationError => banter_error
41
41
  track_message_failed(banter_error, false)
42
42
  Banter::RabbitLogger.log(::Logger::ERROR, { worker: worker_class.name, message: banter_error.message, envelope: envelope })
43
- Airbrake.notify("Validation error for #{worker_class.name}",
43
+ Airbrake.notify(banter_error,
44
44
  params: {
45
45
  info: delivery_info,
46
46
  properties: properties,
47
47
  context: envelope[:context],
48
- payload: envelope[:payload] })
48
+ payload: envelope[:payload],
49
+ message: "Validation error for #{worker_class.name}"
50
+ })
49
51
  rescue => e
50
52
  track_message_failed(e, true)
51
53
  Banter::RabbitLogger.log(::Logger::DEBUG, "Failed message for #{worker_class.name} #{e.message}")
52
- Airbrake.notify("Failed perform for #{worker_class.name}",
54
+ Airbrake.notify(e,
53
55
  params: {
54
56
  info: delivery_info,
55
57
  properties: properties,
56
58
  context: envelope[:context],
57
- payload: envelope[:payload] })
59
+ payload: envelope[:payload],
60
+ message: "Failed perform for #{worker_class.name}"
61
+ })
58
62
 
59
63
  end
60
64
 
@@ -28,7 +28,7 @@ module Banter
28
28
  begin
29
29
  @connection.start
30
30
  rescue => e
31
- Airbrake.notify("RabbitMQ unreachable!", params: { message: e.message }, environment_name: ENV['RAILS_ENV'])
31
+ Airbrake.notify(e, params: { message: e.message, what_happened: "RabbitMQ unreachable!" }, environment_name: ENV['RAILS_ENV'])
32
32
  raise e
33
33
  end
34
34
 
@@ -56,7 +56,8 @@ module Banter
56
56
  @consumer.on_delivery do |delivery_info, properties, contents|
57
57
  Banter::RabbitLogger.log(Logger::DEBUG, "Message delivery with contents: #{contents}")
58
58
  if delivery_info[:redelivered]
59
- Airbrake.notify("PubSub Message redelivery", params: { info: delivery_info, props: properties, contents: contents }, environment_name: ENV['RAILS_ENV'])
59
+ e = StandardError.new("PubSub Message redelivery")
60
+ Airbrake.notify(e, params: { info: delivery_info, props: properties, contents: contents }, environment_name: ENV['RAILS_ENV'], backtrace: caller)
60
61
  end
61
62
  message = ::Banter::Message.new.parse(contents)
62
63
  Banter::RabbitLogger.log_receive(delivery_info[:routing_key], message)
@@ -110,7 +110,7 @@ module Banter
110
110
 
111
111
  def self.validate_routing_key_name(key)
112
112
  return true if key.blank?
113
- key.match(/\A([a-z]+\.?)*([a-z\_]+)\Z/).present?
113
+ key.match(/\A([a-z_]+\.?)*([a-z\_]+)\Z/).present?
114
114
  end
115
115
 
116
116
  def self.generated_queue_name(routing_key, queue_name)
@@ -119,4 +119,4 @@ module Banter
119
119
  end
120
120
 
121
121
  end
122
- end
122
+ end
@@ -1,3 +1,3 @@
1
1
  module Banter
2
- VERSION = "1.0.4"
2
+ VERSION = "1.0.5"
3
3
  end
@@ -21,7 +21,7 @@ describe Banter::Message do
21
21
  end
22
22
 
23
23
  it "should have the data in the payload" do
24
- expect(result[:payload][:data]).to eq('found')
24
+ expect(result.payload.data).to eq('found')
25
25
  end
26
26
 
27
27
  it "should have the attributes readable" do
@@ -49,7 +49,7 @@ describe Banter::Message do
49
49
  end
50
50
 
51
51
  it "should have the data in the payload" do
52
- expect(result[:payload][:data]).to eq('found')
52
+ expect(result.payload.data).to eq('found')
53
53
  end
54
54
 
55
55
  it "should have the attributes readable" do
@@ -11,7 +11,7 @@ describe Banter::Subscriber do
11
11
 
12
12
  context "Routing key is 'honest.test.route'" do
13
13
  let(:routing_data) { {routing_key: "honest.test.route"} }
14
-
14
+
15
15
  it { should eq "honest.test.route" }
16
16
  end
17
17
  end
@@ -231,6 +231,14 @@ describe Banter::Subscriber do
231
231
  end
232
232
  end
233
233
 
234
+ context 'underscore in routing key' do
235
+ before { Klass.subscribe_to 'a_b.c', on: 'foo_bar' }
236
+ it 'is allowed' do
237
+ expect(Klass.subscribed_key).to eq('a_b.c')
238
+ expect(Klass.subscribed_queue).to eq('foo_bar')
239
+ end
240
+ end
241
+
234
242
  context 'invalid routing key' do
235
243
  it 'sets the routing key and queue name' do
236
244
  expect {
@@ -256,4 +264,4 @@ describe Banter::Subscriber do
256
264
 
257
265
  end
258
266
  end
259
- end
267
+ end
@@ -60,7 +60,7 @@ describe Banter::Web::Application do
60
60
 
61
61
  it do
62
62
  worker_ids = workers_json.map { |worker| worker['id'] }
63
- expect(worker_ids).to eq([worker_1.id.to_s, worker_2.id.to_s])
63
+ expect(worker_ids).to match_array([worker_1.id.to_s, worker_2.id.to_s])
64
64
  end
65
65
  end
66
66
 
@@ -110,7 +110,7 @@ describe Banter::Web::Application do
110
110
 
111
111
  def includes_messages(*messages)
112
112
  message_ids = messages_json.map { |m| m['id']}
113
- expect(message_ids).to eq(messages.map(&:id).map(&:to_s))
113
+ expect(message_ids).to match_array(messages.map(&:id).map(&:to_s))
114
114
  end
115
115
 
116
116
  context "all messages" do
@@ -178,4 +178,4 @@ describe Banter::Web::Application do
178
178
  expect(subscribers).to eq(['BarWorker1', 'BarWorker2', 'FooWorker1', 'FooWorker2'])
179
179
  end
180
180
  end
181
- end
181
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: banter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Honest Company
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2014-08-21 00:00:00.000000000 Z
14
+ date: 2014-08-28 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -31,14 +31,14 @@ dependencies:
31
31
  name: rake
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - ! '>='
34
+ - - '>='
35
35
  - !ruby/object:Gem::Version
36
36
  version: '10.0'
37
37
  type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ! '>='
41
+ - - '>='
42
42
  - !ruby/object:Gem::Version
43
43
  version: '10.0'
44
44
  - !ruby/object:Gem::Dependency
@@ -59,28 +59,28 @@ dependencies:
59
59
  name: debugger
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - ! '>='
62
+ - - '>='
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0'
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
- - - ! '>='
69
+ - - '>='
70
70
  - !ruby/object:Gem::Version
71
71
  version: '0'
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: activesupport
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - ! '>='
76
+ - - '>='
77
77
  - !ruby/object:Gem::Version
78
78
  version: '3.2'
79
79
  type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - ! '>='
83
+ - - '>='
84
84
  - !ruby/object:Gem::Version
85
85
  version: '3.2'
86
86
  - !ruby/object:Gem::Dependency
@@ -101,84 +101,84 @@ dependencies:
101
101
  name: bunny
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
- - - ! '>='
104
+ - - '>='
105
105
  - !ruby/object:Gem::Version
106
106
  version: '1.2'
107
107
  type: :runtime
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
- - - ! '>='
111
+ - - '>='
112
112
  - !ruby/object:Gem::Version
113
113
  version: '1.2'
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: airbrake
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
- - - ! '>='
118
+ - - '>='
119
119
  - !ruby/object:Gem::Version
120
120
  version: '3.1'
121
121
  type: :runtime
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - ! '>='
125
+ - - '>='
126
126
  - !ruby/object:Gem::Version
127
127
  version: '3.1'
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: hashie
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  requirements:
132
- - - ! '>='
132
+ - - '>='
133
133
  - !ruby/object:Gem::Version
134
134
  version: '1.2'
135
135
  type: :runtime
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
- - - ! '>='
139
+ - - '>='
140
140
  - !ruby/object:Gem::Version
141
141
  version: '1.2'
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: json
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  requirements:
146
- - - ! '>='
146
+ - - '>='
147
147
  - !ruby/object:Gem::Version
148
148
  version: '1.8'
149
149
  type: :runtime
150
150
  prerelease: false
151
151
  version_requirements: !ruby/object:Gem::Requirement
152
152
  requirements:
153
- - - ! '>='
153
+ - - '>='
154
154
  - !ruby/object:Gem::Version
155
155
  version: '1.8'
156
156
  - !ruby/object:Gem::Dependency
157
157
  name: celluloid
158
158
  requirement: !ruby/object:Gem::Requirement
159
159
  requirements:
160
- - - ! '>='
160
+ - - '>='
161
161
  - !ruby/object:Gem::Version
162
162
  version: '0.15'
163
163
  type: :runtime
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
- - - ! '>='
167
+ - - '>='
168
168
  - !ruby/object:Gem::Version
169
169
  version: '0.15'
170
170
  - !ruby/object:Gem::Dependency
171
171
  name: celluloid-io
172
172
  requirement: !ruby/object:Gem::Requirement
173
173
  requirements:
174
- - - ! '>='
174
+ - - '>='
175
175
  - !ruby/object:Gem::Version
176
176
  version: '0.15'
177
177
  type: :runtime
178
178
  prerelease: false
179
179
  version_requirements: !ruby/object:Gem::Requirement
180
180
  requirements:
181
- - - ! '>='
181
+ - - '>='
182
182
  - !ruby/object:Gem::Version
183
183
  version: '0.15'
184
184
  description: Publish & subscribe to messages
@@ -278,17 +278,17 @@ require_paths:
278
278
  - lib
279
279
  required_ruby_version: !ruby/object:Gem::Requirement
280
280
  requirements:
281
- - - ! '>='
281
+ - - '>='
282
282
  - !ruby/object:Gem::Version
283
283
  version: '0'
284
284
  required_rubygems_version: !ruby/object:Gem::Requirement
285
285
  requirements:
286
- - - ! '>='
286
+ - - '>='
287
287
  - !ruby/object:Gem::Version
288
288
  version: '0'
289
289
  requirements: []
290
290
  rubyforge_project:
291
- rubygems_version: 2.2.2
291
+ rubygems_version: 2.3.0
292
292
  signing_key:
293
293
  specification_version: 4
294
294
  summary: Library for pub-sub (Message Bus)