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#puts` to 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 |