Конвертировать camelCase в приборную панель (hypens) в чистом рубине - PullRequest
0 голосов
/ 15 ноября 2018

Есть множество сообщений об обратном пути.

Но как мне конвертировать camelCase в camel-case в рубине? Моя игра с регулярными выражениями довольно низкая ... вот наоборот:

def underscore(string)
  string.gsub(/::/, '/').
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
  gsub(/([a-z\d])([A-Z])/,'\1_\2').
  tr("-", "_").
  downcase
end

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

ActiveRecord уже имеет его:

gem install i18n activesupport-inflector

тогда

require 'active_support/inflector'
"myHTMLComponent".underscore.dasherize
# => "my-html-component"

Вы можете увидеть реализацию здесь acronym_underscore_regex здесь ).

Если вы не хотите беспокоиться о угловых случаях, таких как аббревиатуры, этого должно быть достаточно:

"myCamelCase".gsub(/[[:upper:]]/) { "-#{$&.downcase}" }
# => "my-camel-case"
0 голосов
/ 15 ноября 2018

вот оно:

def to_dash_case(string)
  string.gsub(/::/, '/').
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1-\2').
  gsub(/([a-z\d])([A-Z])/,'\1-\2').
  downcase
end

не так уж и сложно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...