Module: SilentStream::Enhanced

Defined in:
lib/silent_stream.rb

Instance Method Summary collapse

Instance Method Details

#silence_all(switch = true, temporary_level = Logger::ERROR, logger = nil) { ... } ⇒ Object

Note:

This method is not thread-safe.

Silences STDOUT and optionally a Logger while executing the block.

Parameters:

  • switch (Boolean) (defaults to: true)

    When false, do not silence. Defaults to true.

  • temporary_level (Integer) (defaults to: Logger::ERROR)

    Logger level to set temporarily (e.g., Logger::ERROR).

  • logger (Logger, nil) (defaults to: nil)

    Logger instance to adjust; defaults to Rails.logger when available.

Yields:

  • The work to perform while silenced.

Returns:

  • (Object)

    Returns the block’s return value.



32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/silent_stream.rb', line 32

def silence_all(switch = true, temporary_level = Logger::ERROR, logger = nil, &block)
  if !switch || silent_stream_no_silence
    yield
  else
    begin
      logger ||= silent_stream_logger
      old_logger_level = silent_stream_reset_logger_level(logger, temporary_level)
      # silence STDOUT (like puts)
      silence_stream(STDOUT, &block)
    ensure
      silent_stream_reset_logger_level(logger, old_logger_level)
    end
  end
end