method
groups_for
rails latest stable - Class:
ActiveSupport::Notifications::Fanout
groups_for(name)public
No documentation available.
# File activesupport/lib/active_support/notifications/fanout.rb, line 191
def groups_for(name) # :nodoc:
groups = @groups_for.compute_if_absent(name) do
all_listeners_for(name).reject(&:silenceable).group_by(&:group_class).transform_values do |s|
s.map(&:delegate)
end
end
silenceable_groups = @silenceable_groups_for.compute_if_absent(name) do
all_listeners_for(name).select(&:silenceable).group_by(&:group_class).transform_values do |s|
s.map(&:delegate)
end
end
unless silenceable_groups.empty?
groups = groups.dup
silenceable_groups.each do |group_class, subscriptions|
active_subscriptions = subscriptions.reject { |s| s.silenced?(name) }
unless active_subscriptions.empty?
groups[group_class] = (groups[group_class] || []) + active_subscriptions
end
end
end
groups
end