Module: MonkeyPatching::ActiveSupport::BroadcastLoggerPatcher

Defined in:
lib/monkey_patching/active_support/broadcast_logger_patcher.rb

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name) ⇒ Object (private)



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/monkey_patching/active_support/broadcast_logger_patcher.rb', line 6

def method_missing(name, ...)
  loggers = if name == :tagged
              # only this way reimplemented
              @broadcasts.select { |logger| !logger.is_a?(::Sidekiq::Logger) && logger.respond_to?(:tagged) }
            else
              @broadcasts.select { |logger| logger.respond_to?(name) }
            end

  if loggers.none?
    super
  elsif loggers.one?
    loggers.first.send(name, ...)
  else
    loggers.map { |logger| logger.send(name, ...) }
  end
end