banter 0.7.0 → 0.8.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/lib/banter.rb +1 -0
- data/lib/banter/delay_publish_model.rb +16 -0
- data/lib/banter/publisher.rb +9 -4
- data/lib/banter/server/subscriber_server.rb +0 -4
- data/lib/banter/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11d9e4fde9f27b5c99163b5abb6ddd4f8cb29607
|
4
|
+
data.tar.gz: 754895e5e7af5773b072e7fb7f2024728bbaa555
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4418fba824671130e639689e5c9f158256a45f7dfff640366bbafa50eac3a98478a7daa0bb2d3170148a05a01acc7e92d14d89f32d9e0e7558d8a87621c5db7
|
7
|
+
data.tar.gz: c15e928646a3f46129dfa639fb637a33fd3d0dfd98acc871ed17de0656dc4042a91c85e7dc396cda395efc4e8af15eeb939fd156bdad8cb0d8a03d867429ec30
|
data/lib/banter.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
module Banter
|
2
|
+
module DelayPublishModel
|
3
|
+
def self.included(base)
|
4
|
+
|
5
|
+
# a little esoteric, but this overrides the transaction so that the messages can be delayed.
|
6
|
+
base.instance_eval do
|
7
|
+
def transaction
|
8
|
+
Banter.delay_messages{ super { yield } }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
|
data/lib/banter/publisher.rb
CHANGED
@@ -16,6 +16,7 @@ module Banter
|
|
16
16
|
@exchange = exchange || Banter::Configuration.exchange_name
|
17
17
|
@disabled = false
|
18
18
|
@batch_messages = false
|
19
|
+
@stack_depth = 0
|
19
20
|
end
|
20
21
|
|
21
22
|
def enable(value)
|
@@ -111,15 +112,19 @@ module Banter
|
|
111
112
|
|
112
113
|
def delay_start
|
113
114
|
@batch_messages = true
|
115
|
+
@stack_depth += 1
|
114
116
|
@messages = []
|
115
117
|
end
|
116
118
|
|
117
119
|
def delay_execute
|
118
|
-
@
|
119
|
-
|
120
|
+
@stack_depth -= 1
|
121
|
+
if @stack_depth == 0
|
122
|
+
@messages.each do |key, envelope|
|
123
|
+
execute_publish(key, envelope)
|
124
|
+
end
|
125
|
+
@messages.clear
|
126
|
+
@batch_messages = false
|
120
127
|
end
|
121
|
-
@messages.clear
|
122
|
-
@batch_messages = false
|
123
128
|
end
|
124
129
|
|
125
130
|
def add_message(key, envelope)
|
@@ -99,10 +99,6 @@ module Banter
|
|
99
99
|
routing_key = subscriber.subscribed_key
|
100
100
|
subscribed_queue_name = subscriber.subscribed_queue
|
101
101
|
|
102
|
-
if routing_key.blank?
|
103
|
-
raise ArgumentError.new("Routing key must be provided in #{subscriber.name} using `subscribe_to routing_key`")
|
104
|
-
end
|
105
|
-
|
106
102
|
if subscribed_queue_name.blank?
|
107
103
|
raise ArgumentError.new("Queue Name must be provided in #{subscriber.name} using `subscribe_to routing_key, on: queue_name`")
|
108
104
|
end
|
data/lib/banter/version.rb
CHANGED
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: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Honest Company
|
@@ -205,6 +205,7 @@ files:
|
|
205
205
|
- lib/banter/configuration.rb
|
206
206
|
- lib/banter/context.rb
|
207
207
|
- lib/banter/db_logger.rb
|
208
|
+
- lib/banter/delay_publish_model.rb
|
208
209
|
- lib/banter/exceptions/payload_validation_error.rb
|
209
210
|
- lib/banter/message.rb
|
210
211
|
- lib/banter/middleware.rb
|
@@ -265,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
265
266
|
version: '0'
|
266
267
|
requirements: []
|
267
268
|
rubyforge_project:
|
268
|
-
rubygems_version: 2.
|
269
|
+
rubygems_version: 2.2.2
|
269
270
|
signing_key:
|
270
271
|
specification_version: 4
|
271
272
|
summary: Library for pub-sub (Message Bus)
|