Module: Capistrano::Doctor::OutputHelpers
- Included in:
- EnvironmentDoctor, GemsDoctor, ServersDoctor, VariablesDoctor
- Defined in:
- lib/capistrano/doctor/output_helpers.rb
Overview
Helper methods for pretty-printing doctor output to stdout. All output
(other than title) is indented by four spaces to facilitate copying and
pasting this output into e.g. GitHub or Stack Overflow to achieve code
formatting.
Defined Under Namespace
Classes: Row
Instance Method Summary collapse
-
#puts(string = nil) ⇒ Object
Override
Kernel#putsto prepend four spaces to each line. -
#table(records, &block) ⇒ Object
Prints a table for a given array of records.
-
#title(text) ⇒ Object
Prints a title in blue with surrounding newlines.
-
#warning(text) ⇒ Object
Prints text in yellow.
Instance Method Details
#puts(string = nil) ⇒ Object
Override Kernel#puts to prepend four spaces to each line.
55 56 57 |
# File 'lib/capistrano/doctor/output_helpers.rb', line 55 def puts(string=nil) $stdout.puts(string.to_s.gsub(/^/, " ")) end |
#table(records, &block) ⇒ Object
Prints a table for a given array of records. For each record, the block
is yielded two arguments: the record and a Row object. To print values
for that record, add values using row << "some value". A row can
optionally be highlighted in yellow using row.yellow.
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/capistrano/doctor/output_helpers.rb', line 29 def table(records, &block) return if records.empty? rows = collect_rows(records, &block) col_widths = calculate_column_widths(rows) rows.each do |row| line = row.values.each_with_index.map do |value, col| value.to_s.ljust(col_widths[col]) end.join(" ").rstrip line = color.colorize(line, row.color) if row.color puts line end end |
#title(text) ⇒ Object
Prints a title in blue with surrounding newlines.
44 45 46 47 |
# File 'lib/capistrano/doctor/output_helpers.rb', line 44 def title(text) # Use $stdout directly to bypass the indentation that our `puts` does. $stdout.puts(color.colorize("\n#{text}\n", :blue)) end |
#warning(text) ⇒ Object
Prints text in yellow.
50 51 52 |
# File 'lib/capistrano/doctor/output_helpers.rb', line 50 def warning(text) puts color.colorize(text, :yellow) end |