37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/clir/String.ext.rb', line 37
def self.columnize(lines, delimitor = ',', gutter = ' ')
lines = lines.split("\n") if lines.is_a?(String)
nombre_colonnes = 0
colonnes_widths = []
lines = lines.map do |line|
line.strip.split(delimitor).map {|e| e.strip}
end.each do |line|
nb = line.count nombre_colonnes = nb if nb > nombre_colonnes
end
lines.map do |line|
while line.count < nombre_colonnes
line << ''
end
line
end.each do |line|
line.each_with_index do |str, col_idx|
colonnes_widths[col_idx] = 0 if colonnes_widths[col_idx].nil?
colonnes_widths[col_idx] = str.length if str.length > colonnes_widths[col_idx]
end
end.each do |line|
line.each_with_index do |str, col_idx|
line[col_idx] = str.ljust(colonnes_widths[col_idx])
end
end
lines.map do |line|
line.join(gutter)
end.join("\n").strip
end
|