2010-07-15 3 views
1

J'ai dû convertir une série de phrases en noms de méthodes en chameau. J'ai fini d'écrire quelque chose pour ça. Je suis toujours curieux de savoir s'il y a quelque chose de plus simple.Anglais Phrase à un nom de méthode en chameau

Compte tenu de la chaîne a = "This is a test." sortie thisIsATest

je pour ce qui suit:

a.downcase.gsub(/\s\w/){|b| b[-1,1].upcase } 
+0

utilisez-vous Rails, ou tout simplement les anciens objets Ruby? –

+0

Juste Ruby tout seul. – Pran

Répondre

3

Je ne sais pas, il vaut mieux que votre solution mais il devrait faire l'affaire:

>> "This is a test.".titleize.split(" ").join.camelize(:lower) 
=> "thisIsATest." 
  • titleize: majuscule chaque première lettre de chaque mot
  • split (» «) .join: créer un tableau avec chaque mot et rejoindre pour serrer les espaces à
  • camelize (: inférieure) : faire la première lettre minuscule

Vous pouvez trouver des fonctions plus amusantes dans les rails docs: http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/String/Inflections.html

+0

Ne fonctionnera que dans Rails, mais il est bon d'avoir une liste de ces méthodes! – Pran

2
"active_record".camelize(:lower) 

sortie: "activerecord"

utiliser ces

1
"Some string for you".gsub(/\s+/,'_').camelize(:lower) #=> "someStringForYou" 
  1. gsub: remplacer les espaces par des underscores
  2. camelize: méthode comme java camelcase
0

Vous pouvez essayer d'utiliser le petit bijou 'anglais', disponible à http://english.rubyforge.org/

require 'english/case' 

a = "This is a test." 

a.camelcase().uncapitalize() # => 'thisIsATest 
Questions connexes