Search code examples
rubystringcamelcasing

English Sentence to Camel-cased method name


I had to convert a series of sentences into camel-cased method names. I ended writing something for it. I am still curious if there's something simpler for it.

Given the string a = "This is a test." output thisIsATest

I used for following:

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

Solution

  • Not sure it's better as your solution but it should do the trick:

    >> "This is a test.".titleize.split(" ").join.camelize(:lower)
    => "thisIsATest."
    
    • titleize: uppercase every first letter of each word
    • split(" ").join: create an array with each word and join to squeeze the spaces out
    • camelize(:lower): make the first letter lowercase

    You can find some more fun functions in the Rails docs: http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/String/Inflections.html