module Cucumber::Core::Gherkin::Writer::HasRows

def column_length(column)

def column_length(column)
  lengths = rows.transpose.map { |r| r.map(&:length).max }
  lengths[column]
end

def justify_cell(cell, position)

def justify_cell(cell, position)
  cell.ljust(column_length(position))
end

def pad(row)

def pad(row)
  row.map.with_index { |text, position| justify_cell(text, position) }
end

def row(*cells)

def row(*cells)
  rows << cells
end

def row_statements(indent=nil)

def row_statements(indent=nil)
  rows.map { |row| indent(table_row(row), indent) }
end

def rows

def rows
  @rows ||= []
end

def table_row(row)

def table_row(row)
  padded = pad(row)
  "| #{padded.join(' | ')} |"
end