module Console::Output::Default
def self.mail?(env = ENV)
Detect if we're running in a cron job or mail context where human-readable output is preferred.
def self.mail?(env = ENV) # Check for common cron environment indicators return true if env.key?("MAILTO") && !env["MAILTO"].empty? false end
def self.new(stream, env: ENV, **options)
@parameter options [Hash] Additional options to customize the output.
@parameter env [Hash] Environment variables (defaults to ENV for testing).
@parameter io [IO] The output stream.
Create a new output format based on the given stream.
def self.new(stream, env: ENV, **options) stream ||= $stderr if stream.tty? || mail?(env) output = Terminal.new(stream, **options) else output = Serialized.new(stream, **options) end return output end