Английское предложение для верблюжьего метода - PullRequest
1 голос
/ 15 июля 2010

Мне пришлось преобразовать серию предложений в названия методов в верблюжьей клетке.Я закончил писать что-то для этого.Мне все еще интересно, есть ли что-нибудь попроще для этого.

Учитывая строку a = "This is a test." output thisIsATest

, которую я использовал для:

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

Ответы [ 4 ]

3 голосов
/ 15 июля 2010

Не уверен, что оно лучше вашего решения, но оно должно сработать:

>> "This is a test.".titleize.split(" ").join.camelize(:lower)
=> "thisIsATest."
  • titleize: прописные буквы каждой первой буквы каждого слова
  • split ("") .join: создать массив с каждым словом и соединиться, чтобы сжать пробелы
  • camelize (: нижний): сделать первую букву строчной

В документации по Rails вы можете найти еще несколько забавных функций: http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/String/Inflections.html

2 голосов
/ 15 июля 2010
"active_record".camelize(:lower)

вывод: "activeRecord"

используйте эти

1 голос
/ 15 июля 2010
"Some string for you".gsub(/\s+/,'_').camelize(:lower) #=> "someStringForYou"
  1. gsub: заменить пробелы подчеркиванием
  2. camelize: java-подобный метод camelcase
0 голосов
/ 19 июля 2010

Вы можете попробовать использовать гем 'English', доступный по http://english.rubyforge.org/

require 'english/case'

a = "This is a test."

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