Skip to content

Commit ed6a907

Browse files
committed
basic sync message sending
1 parent 5bc9287 commit ed6a907

File tree

6 files changed

+27
-13
lines changed

6 files changed

+27
-13
lines changed

lib/eureka-bot.rb

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ module EurekaBot
1414
autoload :Instrumentation
1515
autoload :Job
1616
autoload :Resolver
17+
autoload :Sender
1718
autoload :Version
1819

1920
eager_autoload do

lib/eureka_bot/controller/response.rb

+14-7
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,18 @@ def initialize(logger: EurekaBot.logger)
1111
@order_counters = {}
1212
end
1313

14-
def add(**params)
14+
def add(sync: false, **params)
1515
run_callbacks :add do
16-
if params[:order_queue]
17-
@order_counters[params[:order_queue]] = (@order_counters[params[:order_queue]] || 0) + 1
18-
@data << {
19-
order: @order_counters[params[:order_queue]]
20-
}.merge(params)
16+
message = params
17+
if message[:order_queue]
18+
@order_counters[message[:order_queue]] = (@order_counters[message[:order_queue]] || 0) + 1
19+
message = {order: @order_counters[message[:order_queue]]}.merge(message)
20+
end
21+
if sync
22+
self.class.sender_class.new.deliver(message)
2123
else
22-
@data << params
24+
@data << message
25+
nil
2326
end
2427
end
2528
end
@@ -32,4 +35,8 @@ def to_a
3235
data
3336
end
3437

38+
def self.sender_class
39+
@@sender_class ||= EurekaBot::Sender
40+
end
41+
3542
end

lib/eureka_bot/sender.rb

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class EurekaBot::Sender
2+
include EurekaBot::Instrumentation
3+
4+
def deliver(message)
5+
true
6+
end
7+
8+
end

lib/eureka_bot/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module EurekaBot
2-
VERSION = '1.0.15'
2+
VERSION = '1.0.16'
33
end

spec/eureka-bot/instrumentation_spec.rb

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
let(:resolver) { EurekaBot::Resolver.new(message: {}) }
66
it do
77
payloads = []
8-
ActiveSupport::Notifications.subscribe /.*/ do |name, started, finished, id, payload|
8+
subscriber = ActiveSupport::Notifications.subscribe /.*/ do |name, started, finished, id, payload|
99
expect(payload).to include(:level)
1010
payloads << payload
1111
end
1212

1313
expect{resolver.resolved}.to change{payloads.length}.from(0).to(1)
14+
15+
ActiveSupport::Notifications.unsubscribe(subscriber)
1416
end
1517
end
1618
end

spec/eureka-bot/job_spec.rb

-4
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,5 @@ def some_action
7272
}.to change{$result}.from(nil).to('test action error')
7373
end
7474
end
75-
76-
77-
78-
7975
end
8076
end

0 commit comments

Comments
 (0)