salut, en fait je cherche l'equivalent de str_shuffle(php) en ror quelqu'un peut m'aider ? merci d'avance
Je trouve que c'est un besoin bien étrange, mais pourquoi pas.
Surtout que je vois des gens en PHP suggérer d'utiliser ça pour un mot de passe... je recommanderais plutôt un String.crypt, à la rigueur, ou un algo bien obscur sur le marshalling, mais rien ne vaut les vrais algos de sécu. Bref. http://www.ruby-doc.org/core/classes/String.html#M000738
Tu peux transformer ta chaîne en tableau puis choisir en random (Kernel.rand(max) pour un chiffre en random) l'une des permutations, mais c'est un peu overkill et gaspillerait des ressources. http://www.ruby-doc.org/core/classes/Array.html#M000338
J'ai essayé ce petit jeu, pour voir : une fonction de tri random. Apparemment ça passe, tu n'as qu'à tester avec tes données pour voir si ça te plaît.
irb(main):014:0> s = "bonjour" irb(main):015:0> s.split('').sort {|x,y| (Kernel.rand(42) % 3) - 1 }.join => "bonuojr" irb(main):016:0> s.split('').sort {|x,y| (Kernel.rand(42) % 3) - 1 }.join => "oounrjb" irb(main):017:0> s.split('').sort {|x,y| (Kernel.rand(42) % 3) - 1 }.join => "bojnoru" irb(main):018:0> s.split('').sort {|x,y| (Kernel.rand(42) % 3) - 1 }.join => "ounbojr" irb(main):019:0> s.split('').sort {|x,y| (Kernel.rand(42) % 3) - 1 }.join => "bnjrouo" irb(main):020:0> s.split('').sort {|x,y| (Kernel.rand(42) % 3) - 1 }.join => "rouojbn" irb(main):021:0> s.split('').sort {|x,y| (Kernel.rand(42) % 3) - 1 }.join => "ujboron" irb(main):022:0> s.split('').sort {|x,y| (Kernel.rand(42) % 3) - 1 }.join => "ooubjnr" irb(main):023:0> s.split('').sort {|x,y| (Kernel.rand(42) % 3) - 1 }.join => "noobjru"
railsfrance.org - communauté francophone des utilisateurs de Ruby on Rails [ Hébergement et ressources techniques gracieusement fournis par la SSLL Nuxos Group ]
il y a 16 heures 51 min
il y a 16 heures 53 min
il y a 21 heures 48 min
il y a 23 heures 17 min
il y a 1 jour 17 heures
il y a 2 jours 17 heures
il y a 2 jours 21 heures
il y a 1 semaine 18 heures
il y a 1 semaine 22 heures
il y a 1 semaine 3 jours