-
Notifications
You must be signed in to change notification settings - Fork 0
/
resultat.rb
39 lines (32 loc) · 890 Bytes
/
resultat.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require 'rubygems'
class Resultat
attr_accessor :matrice # Matrice des dettes
attr_accessor :participants
# participants : Array of participants names
# matrice : Matric résultats
def initialize(participants, matrice)
@participants = participants
@matrice = matrice
end
def to_s
# longueur du prénom le plus long
largeur = [@participants.sort_by {|e| e.size}.last.size + 2, 6].max + 1
# première ligne
res = ' ' * (largeur)
res << @participants.collect {|key|
key.ljust(largeur - 1)
}.join(' ') + "\n"
# autres lignes
noms_tmp = @participants.clone
noms_tmp.reverse!
@matrice.row_vectors.each do |row|
res << noms_tmp.pop.ljust(largeur)
res << row.collect { |x|
s = "%.1f" % x
s = '0' if x.zero?
s.ljust(largeur)
}.to_a.join('') + "\n"
end
return res
end
end