Existe-t-il un moyen d'aplatir un hachage en une chaîne de caractères, avec des délimiteurs facultatifs entre les clés et les valeurs, et des paires clé/valeur ?
Par exemple, print {:a => :b, :c => :d}.flatten('=','&')
devrait s'imprimer a=b&c=d
J'ai écrit un code à cet effet, mais je me demandais s'il n'y avait pas un moyen plus efficace :
class Hash
def flatten(keyvaldelimiter, entrydelimiter)
string = ""
self.each do
|key, value|
key = "#{entrydelimiter}#{key}" if string != "" #nasty hack
string += "#{key}#{keyvaldelimiter}#{value}"
end
return string
end
end
print {:a => :b, :c => :d}.flatten('=','&') #=> 'c=d&a=b'
Merci