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 |