ClassName до class_name
-
23-08-2019 - |
Вопрос
Я уверен, что это простой вопрос для вас, гиков:
Допустим, у меня есть строка «ThisIsMyString», и я хочу отформатировать ее как «this_is_my_string», используя Ruby.
Как мне это сделать?
Мэтт
Решение
Если у вас есть доступ к ActiveSupport (как в Rails, но с возможностью внешнего использования), вы можете использовать underscore
метод в Инфлекторный модуль.
"ClassName".underscore # => class_name
Другие советы
Строка класса def to_under_score (gsub (/[az]) {| p | "_" + p.downcase}) [1 ..- 1] Конец конца
"MyTestCase".to_under_score => "my_test_case"
Рубиновые грани есть функция для этого:Строка#подчеркивание.Вот источник из этого:
def underscore
gsub(/::/, '/').
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
gsub(/([a-z\d])([A-Z])/,'\1_\2').
tr("-", "_").
downcase
end
Если у вас есть доступ к Активная поддержка из Рельсы проект, это так же просто, как
require 'activesupport'
"ThisIsMyString".underscore
Не связан с StackOverflow