Module: Sus::Output
- Defined in:
- lib/sus/output.rb,
lib/sus/output/bar.rb,
lib/sus/output/null.rb,
lib/sus/output/text.rb,
lib/sus/output/lines.rb,
lib/sus/output/xterm.rb,
lib/sus/output/status.rb,
lib/sus/output/buffered.rb,
lib/sus/output/messages.rb,
lib/sus/output/progress.rb,
lib/sus/output/backtrace.rb,
lib/sus/output/structured.rb
Overview
Represents output handlers for test results and messages.
Defined Under Namespace
Modules: Messages Classes: Backtrace, Bar, Buffered, Lines, Null, Progress, Status, Structured, Text, XTerm
Class Method Summary collapse
-
.buffered ⇒ Object
Create a buffered output handler.
-
.default(io = $stderr, env = ENV) ⇒ Object
Create a default output handler with styling configured.
-
.for(io, env = ENV) ⇒ Object
Create an appropriate output handler for the given IO.
-
.github_actions?(env) ⇒ Boolean
Detect if we’re running in GitHub Actions, where human-readable output is preferred.
Class Method Details
.buffered ⇒ Object
Create a buffered output handler.
68 69 70 |
# File 'lib/sus/output.rb', line 68 def self.buffered Buffered.new end |
.default(io = $stderr, env = ENV) ⇒ Object
Create a default output handler with styling configured.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/sus/output.rb', line 39 def self.default(io = $stderr, env = ENV) output = self.for(io, env) Output::Bar.register(output) output[:context] = output.style(nil, nil, :bold) output[:describe] = output.style(:cyan) output[:it] = output.style(:cyan) output[:with] = output.style(:cyan) output[:variable] = output.style(:blue, nil, :bold) output[:path] = output.style(:yellow) output[:line] = output.style(:yellow) output[:identity] = output.style(:yellow) output[:passed] = output.style(:green) output[:failed] = output.style(:red) output[:deferred] = output.style(:yellow) output[:skipped] = output.style(:blue) output[:errored] = output.style(:red) # output[:inform] = output.style(nil, nil, :bold) return output end |
.for(io, env = ENV) ⇒ Object
Create an appropriate output handler for the given IO.
27 28 29 30 31 32 33 |
# File 'lib/sus/output.rb', line 27 def self.for(io, env = ENV) if io.isatty or self.github_actions?(env) XTerm.new(io) else Text.new(io) end end |
.github_actions?(env) ⇒ Boolean
Detect if we’re running in GitHub Actions, where human-readable output is preferred. GitHub Actions sets the GITHUB_ACTIONS environment variable to “true”.
19 20 21 |
# File 'lib/sus/output.rb', line 19 def self.github_actions?(env) env["GITHUB_ACTIONS"] == "true" end |