lib/exodus/helpers/text_formatter.rb
def format_paragraph(space_number, title, *paragraphes)
      column_size = paragraphes.max_by{|paragraph| paragraph.size}.size
      @full_text = Hash[*column_size.times.map {|i| [i,[]]}.flatten(1)]

      paragraphes.each_with_index do |sentences, paragraph_number|
        sentences.each_with_index do |sentence, column|
          sentence = sentence.to_s
          words = sentence.gsub('=>', ' => ').split(' ') || ''
          
          if sentence.size > space_number && (words).size > 1
            new_sentence = ""
            words.each_with_index do |word, nb_word| 
              if new_sentence.size + word.size  < space_number
                new_sentence << word << ' '
              else
                insert_line(column, new_sentence) unless new_sentence.empty?
                new_sentence = word << ' '
              end
            end

            insert_line(column, new_sentence) unless new_sentence == @full_text[column].last
          else 
            insert_line(column, sentence) 
          end
        end

        @full_text.each {|column, lines| (@max_lines - lines.size).times { lines << '' }}
        space = paragraph_number == 0 && title ? "/nbspace" : ""
        @full_text.each {|column, lines| lines << space}
      end

      stringify_paragraph
    end
def format_paragraph(space_number, title, *paragraphes)
      column_size = paragraphes.max_by{|paragraph| paragraph.size}.size
      @full_text = Hash[*column_size.times.map {|i| [i,[]]}.flatten(1)]

      paragraphes.each_with_index do |sentences, paragraph_number|
        sentences.each_with_index do |sentence, column|
          sentence = sentence.to_s
          words = sentence.gsub('=>', ' => ').split(' ') || ''
          
          if sentence.size > space_number && (words).size > 1
            new_sentence = ""
            words.each_with_index do |word, nb_word| 
              if new_sentence.size + word.size  < space_number
                new_sentence << word << ' '
              else
                insert_line(column, new_sentence) unless new_sentence.empty?
                new_sentence = word << ' '
              end
            end

            insert_line(column, new_sentence) unless new_sentence == @full_text[column].last
          else 
            insert_line(column, sentence) 
          end
        end

        @full_text.each {|column, lines| (@max_lines - lines.size).times { lines << '' }}
        space = paragraph_number == 0 && title ? "/nbspace" : ""
        @full_text.each {|column, lines| lines << space}
      end

      stringify_paragraph
    end
Transforms an array of paragraphes to a String using lines and columns
 Each paragraph is actually an Array of string, where each string is a sentence of a given column
 if the sentence contains to much caractere the sentence will be splitted (using whitespaces) and written on several lines
 e,g considering paragraphes = [["id", "type"]["id_1", "test"]]
 format_paragraph will print:
 id      type
 id_1    test