Class: Fastlane::MarkdownTableFormatter
- Inherits:
-
Object
- Object
- Fastlane::MarkdownTableFormatter
- Defined in:
- fastlane/lib/fastlane/markdown_table_formatter.rb
Instance Method Summary collapse
- #column_width(column) ⇒ Object
- #header_separator_row ⇒ Object
-
#initialize(string, header = true) ⇒ MarkdownTableFormatter
constructor
taken from: github.com/benbalter/markdown-table-formatter.
- #pad(string, length) ⇒ Object
-
#parse ⇒ Object
converts the markdown string into an array of arrays.
- #separator(length) ⇒ Object
- #table ⇒ Object
- #to_md ⇒ Object
Constructor Details
#initialize(string, header = true) ⇒ MarkdownTableFormatter
taken from: github.com/benbalter/markdown-table-formatter
4 5 6 7 |
# File 'fastlane/lib/fastlane/markdown_table_formatter.rb', line 4 def initialize(string, header = true) @doc = string @header = header end |
Instance Method Details
#column_width(column) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'fastlane/lib/fastlane/markdown_table_formatter.rb', line 26 def column_width(column) width = 0 table.each do |row| length = row[column].strip.length width = length if length > width end width end |
#header_separator_row ⇒ Object
43 44 45 46 47 48 49 |
# File 'fastlane/lib/fastlane/markdown_table_formatter.rb', line 43 def header_separator_row output = [] [*0...table.first.length].each do |column| output.push(separator(column_width(column))) end output end |
#pad(string, length) ⇒ Object
35 36 37 |
# File 'fastlane/lib/fastlane/markdown_table_formatter.rb', line 35 def pad(string, length) string.strip.ljust(length, ' ') end |
#parse ⇒ Object
converts the markdown string into an array of arrays
10 11 12 13 14 15 16 17 18 19 20 |
# File 'fastlane/lib/fastlane/markdown_table_formatter.rb', line 10 def parse @table = [] rows = @doc.split(/\r?\n/) rows.each do |row| row_array = row.split("|") row_array.each(&:strip!) @table.push(row_array) end @table.delete_at(1) if @header # strip header separator @table end |
#separator(length) ⇒ Object
39 40 41 |
# File 'fastlane/lib/fastlane/markdown_table_formatter.rb', line 39 def separator(length) "".ljust(length, '-') end |
#table ⇒ Object
22 23 24 |
# File 'fastlane/lib/fastlane/markdown_table_formatter.rb', line 22 def table @table ||= parse end |
#to_md ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'fastlane/lib/fastlane/markdown_table_formatter.rb', line 51 def to_md output = "" t = table.clone t.insert(1, header_separator_row) if @header t.each_with_index do |row, index| row.map!.with_index { |cell_row, index_row| pad(cell_row, column_width(index_row)) } output += "#{row.join(' | ').lstrip} |\n" end output end |