banter 1.0.4 → 1.0.5

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,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)