Class: ForemanMaintain::Reporter

Inherits:
Object
  • Object
show all
Defined in:
lib/foreman_maintain/reporter.rb,
lib/foreman_maintain/reporter/cli_reporter.rb

Direct Known Subclasses

CLIReporter

Defined Under Namespace

Classes: CLIReporter, DummySpinner

Constant Summary collapse

DECISION_MAPPER =
{
  %w[y yes] => :yes,
  %w[n next no] => :no,
  %w[q quit] => :quit
}.freeze

Instance Method Summary collapse

Instance Method Details

#after_execution_finishes(_execution) ⇒ Object



21
# File 'lib/foreman_maintain/reporter.rb', line 21

def after_execution_finishes(_execution); end

#after_scenario_finishes(_scenario) ⇒ Object



23
# File 'lib/foreman_maintain/reporter.rb', line 23

def after_scenario_finishes(_scenario); end

#ask(_message) ⇒ Object



42
# File 'lib/foreman_maintain/reporter.rb', line 42

def ask(_message); end

#ask_decision(message, options = {}) ⇒ Object

simple yes/no question, returns :yes, :no or :quit



49
50
51
52
53
54
55
56
57
58
59
# File 'lib/foreman_maintain/reporter.rb', line 49

def ask_decision(message, options = {})
  options.validate_options!(:assumeyes)
  assumeyes = options.fetch(:assumeyes, assumeyes?)
  if assumeyes
    print("#{message} (assuming yes)")
    return :yes
  end
  until_valid_decision do
    filter_decision(ask("#{message}, [y(yes), n(no), q(quit)]"))
  end
end

#assumeyes=(assume) ⇒ Object



61
62
63
# File 'lib/foreman_maintain/reporter.rb', line 61

def assumeyes=(assume)
  @assumeyes = !!assume
end

#assumeyes?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/foreman_maintain/reporter.rb', line 44

def assumeyes?
  @assumeyes
end

#before_execution_starts(_execution) ⇒ Object



19
# File 'lib/foreman_maintain/reporter.rb', line 19

def before_execution_starts(_execution); end

#before_scenario_starts(_scenario, _last_scenario = nil) ⇒ Object

Each public method is a hook called by executor at the specific point



17
# File 'lib/foreman_maintain/reporter.rb', line 17

def before_scenario_starts(_scenario, _last_scenario = nil); end

#on_next_steps(steps) ⇒ Object



25
26
27
28
29
30
31
32
# File 'lib/foreman_maintain/reporter.rb', line 25

def on_next_steps(steps)
  return if steps.empty?
  if steps.size > 1
    multiple_steps_decision(steps)
  else
    single_step_decision(steps.first)
  end
end


38
# File 'lib/foreman_maintain/reporter.rb', line 38

def print(_message); end

#puts(_message) ⇒ Object



40
# File 'lib/foreman_maintain/reporter.rb', line 40

def puts(_message); end

#with_spinner(_message) {|DummySpinner.new| ... } ⇒ Object

Yields:



34
35
36
# File 'lib/foreman_maintain/reporter.rb', line 34

def with_spinner(_message, &_block)
  yield DummySpinner.new
end