banter 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|