关于相反方法的文章很多。
但是如何将红宝石中的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
答案 0 :(得分:2)
ActiveRecord已经拥有它:
gem install i18n activesupport-inflector
然后
require 'active_support/inflector'
"myHTMLComponent".underscore.dasherize
# => "my-html-component"
您可以看到实现here(带有acronym_underscore_regex
here)。
如果您不想担心首字母缩略词之类的极端情况,就足够了:
"myCamelCase".gsub(/[[:upper:]]/) { "-#{$&.downcase}" }
# => "my-camel-case"
答案 1 :(得分:-1)
在这里:
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
毕竟不是那么复杂...