Skip to content

Commit 3c9a76d

Browse files
authored
Merge pull request rails#43382 from jhawthorn/notification_match_cleanup
Simplify ActiveSupport::Notification matching
2 parents 2432988 + 3c1bec4 commit 3c9a76d

File tree

1 file changed

+18
-43
lines changed
  • activesupport/lib/active_support/notifications

1 file changed

+18
-43
lines changed

activesupport/lib/active_support/notifications/fanout.rb

Lines changed: 18 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -108,23 +108,20 @@ def self.new(pattern, listener, monotonic)
108108
end
109109
end
110110

111-
wrap_all pattern, subscriber_class.new(pattern, listener)
112-
end
113-
114-
def self.wrap_all(pattern, subscriber)
115-
unless pattern
116-
AllMessages.new(subscriber)
117-
else
118-
subscriber
119-
end
111+
subscriber_class.new(pattern, listener)
120112
end
121113

122114
class Matcher # :nodoc:
123115
attr_reader :pattern, :exclusions
124116

125117
def self.wrap(pattern)
126-
return pattern if String === pattern
127-
new(pattern)
118+
if String === pattern
119+
pattern
120+
elsif pattern.nil?
121+
AllMessages.new
122+
else
123+
new(pattern)
124+
end
128125
end
129126

130127
def initialize(pattern)
@@ -139,6 +136,16 @@ def unsubscribe!(name)
139136
def ===(name)
140137
pattern === name && !exclusions.include?(name)
141138
end
139+
140+
class AllMessages
141+
def ===(name)
142+
true
143+
end
144+
145+
def unsubscribe!(*)
146+
false
147+
end
148+
end
142149
end
143150

144151
class Evented # :nodoc:
@@ -177,10 +184,6 @@ def subscribed_to?(name)
177184
pattern === name
178185
end
179186

180-
def matches?(name)
181-
pattern && pattern === name
182-
end
183-
184187
def unsubscribe!(name)
185188
pattern.unsubscribe!(name)
186189
end
@@ -245,34 +248,6 @@ def build_event(name, id, payload)
245248
ActiveSupport::Notifications::Event.new name, nil, nil, id, payload
246249
end
247250
end
248-
249-
class AllMessages # :nodoc:
250-
def initialize(delegate)
251-
@delegate = delegate
252-
end
253-
254-
def start(name, id, payload)
255-
@delegate.start name, id, payload
256-
end
257-
258-
def finish(name, id, payload)
259-
@delegate.finish name, id, payload
260-
end
261-
262-
def publish(name, *args)
263-
@delegate.publish name, *args
264-
end
265-
266-
def subscribed_to?(name)
267-
true
268-
end
269-
270-
def unsubscribe!(*)
271-
false
272-
end
273-
274-
alias :matches? :===
275-
end
276251
end
277252
end
278253
end

0 commit comments

Comments
 (0)