Class: Mutant::Reporter::CLI

Inherits:
Mutant::Reporter show all
Defined in:
lib/mutant/reporter/cli.rb,
lib/mutant/reporter/cli/tput.rb,
lib/mutant/reporter/cli/format.rb,
lib/mutant/reporter/cli/printer.rb

Overview

Reporter that reports in human readable format

Defined Under Namespace

Classes: Format, Printer, Tput

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build(output) ⇒ Reporter::CLI

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Build reporter

Parameters:

  • output (IO)

Returns:


15
16
17
18
19
20
21
22
23
# File 'lib/mutant/reporter/cli.rb', line 15

def self.build(output)
  tty = output.respond_to?(:tty?) && output.tty?
  format = if !Mutant.ci? && tty && Tput::INSTANCE.available
    Format::Framed.new(tty:  tty, tput: Tput::INSTANCE)
  else
    Format::Progressive.new(tty: tty)
  end
  new(output, format)
end

Instance Method Details

#delayFloat

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Return report delay in seconds

TODO: Move this to a callback registration

Reporters other than CLI that might exist in future
may only need the final report. So providing a noop callback
registration makes more sense for these.
As only CLI reporters exist currently I do not really care right now.

Returns:

  • (Float)

64
65
66
# File 'lib/mutant/reporter/cli.rb', line 64

def delay
  format.delay
end

#progress(status) ⇒ self

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Report progress object

Parameters:

Returns:

  • (self)

46
47
48
49
# File 'lib/mutant/reporter/cli.rb', line 46

def progress(status)
  write(format.progress(status))
  self
end

#report(env) ⇒ self

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Report env

Parameters:

Returns:

  • (self)

89
90
91
92
# File 'lib/mutant/reporter/cli.rb', line 89

def report(env)
  Printer::EnvResult.run(output, env)
  self
end

#start(env) ⇒ self

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Report start

Parameters:

Returns:

  • (self)

33
34
35
36
# File 'lib/mutant/reporter/cli.rb', line 33

def start(env)
  write(format.start(env))
  self
end

#warn(message) ⇒ self

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Report warning

Parameters:

  • message (String)

Returns:

  • (self)

76
77
78
79
# File 'lib/mutant/reporter/cli.rb', line 76

def warn(message)
  output.puts(message)
  self
end