Ваше описание по запросу не так понятно.
Исходя из вашего исключенного результата, я понимаю его как «верблюд часть строки до шаблона». Прежде всего следует отметить, что camelize
не является частью стандартной библиотеки Ruby класса String
. ActiveSupport::Inflector
обеспечивает это.
Так что если вы хотите просто верблюдить каждую часть, разделенную на шаблон, используйте str.split('_').map(&:capitalize).join('_')
. В вашем случае он возвращает 'Like_So__Case'
.
Ruby's String
имеет еще один метод экземпляра с именем partition
, который разбивает строку на три части (массив):
- Часть до рисунка
- Узор
- Часть по шаблону
Так что str.partition('__').tap { |a| a[0] = a[0].split('_').map(&:capitalize).join }.join
должен быть вашим ответом простым Ruby.