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 |