mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 09:03:40 +08:00
4ea21fa2d0
This change both speeds up specs (less strings to allocate) and helps catch cases where methods in Discourse are mutating inputs. Overall we will be migrating everything to use #frozen_string_literal: true it will take a while, but this is the first and safest move in this direction
29 lines
605 B
Ruby
29 lines
605 B
Ruby
# frozen_string_literal: true
|
|
|
|
module MessageBus::DiagnosticsHelper
|
|
def publish(channel, data, opts = nil)
|
|
id = super(channel, data, opts)
|
|
if @tracking && (@channel.nil? || @channel == channel)
|
|
m = MessageBus::Message.new(-1, id, channel, data)
|
|
m.user_ids = opts[:user_ids] if opts
|
|
m.group_ids = opts[:group_ids] if opts
|
|
@tracking << m
|
|
end
|
|
id
|
|
end
|
|
|
|
def track_publish(channel = nil)
|
|
@channel = channel
|
|
@tracking = tracking = []
|
|
yield
|
|
tracking
|
|
ensure
|
|
@tracking = nil
|
|
end
|
|
|
|
end
|
|
|
|
module MessageBus
|
|
extend MessageBus::DiagnosticsHelper
|
|
end
|