Dans Rails :
"kirk douglas".titleize => "Kirk Douglas"
#this also works for 'kirk_douglas'
sans rails :
"kirk douglas".split(/ |\_/).map(&:capitalize).join(" ")
#OBJECT IT OUT
def titleize(str)
str.split(/ |\_/).map(&:capitalize).join(" ")
end
sans Rails (charger ActiveSupport de rails pour corriger la méthode #titleize en String
)
require 'active_support/core_ext'
"kirk douglas".titleize #=> "Kirk Douglas"
(certains) cas d'utilisation de chaînes traités par #titleize
- "kirk douglas"
- "kirk_douglas"
- "kirk-douglas"
- "kirkDouglas"
- "KirkDouglas"
titleize gotchas
La méthode #titleize est un peu plus complexe que ce à quoi on pourrait s'attendre au départ et peut produire des résultats inattendus, notamment dans les situations sensibles à la casse, comme l'a souligné @JamesMcMahon :
"hEy lOok".titleize #=> "H Ey Lo Ok"
parce qu'il est destiné à gérer le code en majuscules comme :
"kirkDouglas".titleize #=> "Kirk Douglas"
Pour faire face à ce cas limite, vous pouvez nettoyer votre chaîne avec #downcase
avant de lancer #titleize. Bien sûr, si vous faites cela, vous effacerez toutes les séparations de mots en majuscules :
"kirkDouglas".downcase.titleize #=> "Kirkdouglas"