02-08-2011, 06:48 PM
(Modification du message : 02-08-2011, 06:50 PM par Sephi-Chan.)
Merci les gars ! Effectivement j'aurais pu le faire mais j'ai cédé à la facilité.
J'ai été bon à rien aujourd'hui, ou presque !
Je me contente donc de porter cette fonction. Elle va en fait me servir dans le cadre de l'affichage d'un module de traduction de chaîne. Je souhaite les organiser de manière hiérarchique afin que ce soit plus visuel pour l'utilisateur.
Merci bien !
J'ai été bon à rien aujourd'hui, ou presque !
Je me contente donc de porter cette fonction. Elle va en fait me servir dans le cadre de l'affichage d'un module de traduction de chaîne. Je souhaite les organiser de manière hiérarchique afin que ce soit plus visuel pour l'utilisateur.
def behead(string)
tokens = string.split('.')
head = tokens.shift
tail = tokens.join('.')
[ head, tail ]
end
def nest(flat_hash)
nested = {}
recurse_on = {}
flat_hash.each do |key, value|
head, tail = behead(key)
if tail.empty?
nested[head] = value
else
nested[head] ||= {}
nested[head][tail] = value
recurse_on[head] = true
end
end
recurse_on.each do |key, value|
nested[key] = nest(nested[key])
end
nested
end
Merci bien !