Module: KubeDeployTools::DeferredSummaryLogging

Included in:
FormattedLogger
Defined in:
lib/kube_deploy_tools/deferred_summary_logging.rb

Overview

Adds the methods to your Logger class. These methods include helpers for logging consistent headings, as well as facilities for displaying key information later, in a summary section, rather than when it occurred.

Defined Under Namespace

Classes: DeferredSummary

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#summaryObject (readonly)

Returns the value of attribute summary.



8
9
10
# File 'lib/kube_deploy_tools/deferred_summary_logging.rb', line 8

def summary
  @summary
end

Instance Method Details

#blank_line(level = :info) ⇒ Object



19
20
21
# File 'lib/kube_deploy_tools/deferred_summary_logging.rb', line 19

def blank_line(level = :info)
  public_send(level, "")
end

#heading(text, secondary_msg = '', secondary_msg_color = :cyan) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/kube_deploy_tools/deferred_summary_logging.rb', line 28

def heading(text, secondary_msg = '', secondary_msg_color = :cyan)
  padding = (100.0 - (text.length + secondary_msg.length)) / 2
  blank_line
  part1 = ColorizedString.new("#{'-' * padding.floor}#{text}").cyan
  part2 = ColorizedString.new(secondary_msg).colorize(secondary_msg_color)
  part3 = ColorizedString.new('-' * padding.ceil).cyan
  info(part1 + part2 + part3)
end

#initialize(*args) ⇒ Object



9
10
11
12
# File 'lib/kube_deploy_tools/deferred_summary_logging.rb', line 9

def initialize(*args)
  reset
  super
end

#phase_heading(phase_name) ⇒ Object



23
24
25
26
# File 'lib/kube_deploy_tools/deferred_summary_logging.rb', line 23

def phase_heading(phase_name)
  @current_phase += 1
  heading("Phase #{@current_phase}: #{phase_name}")
end

Outputs the deferred summary information saved via @logger.summary.add_paragraph



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/kube_deploy_tools/deferred_summary_logging.rb', line 38

def print_summary(success)
  if success
    heading("Result: ", "SUCCESS", :green)
    level = :info
  else
    heading("Result: ", "FAILURE", :red)
    level = :fatal
  end

  summary.paragraphs.each do |para|
    blank_line(level)
    msg_lines = para.split("\n")
    msg_lines.each { |line| public_send(level, line) }
  end
end

#resetObject



14
15
16
17
# File 'lib/kube_deploy_tools/deferred_summary_logging.rb', line 14

def reset
  @summary = DeferredSummary.new
  @current_phase = 0
end