NoirLogger
Constants
Frame delay. sleep (fiber-aware) rather than LibC.usleep, which
would block the whole scheduler now that the spinner is a fiber.
Constructors
Class methods
IO::Error#os_error is Errno | WinError | WasiError | Nil — on
Windows a broken pipe surfaces as a WinError, not an Errno, so
comparing straight against Errno::EPIPE silently never matches
there. WinError#to_errno normalizes it (ERROR_BROKEN_PIPE /
ERROR_NO_DATA both map to Errno::EPIPE). Noir doesn't ship a WASI
build, so WasiError — whose own #to_errno doesn't even compile on
every native target (it references an Errno member some platforms'
bindings omit) — is intentionally left out of this check.
Instance methods
Block form for messages that cost something to build. The message
overload takes an already-built String, so debug "...#{expensive}"
pays for the interpolation on every call and then throws it away with
debug off; debug { "...#{expensive}" } doesn't build it at all.