我已经创建了一个使用以下功能的web框架:
def to_class(text)
text.capitalize
text.gsub(/(_|-)/, '')
end
将
snake_cased
或hyphen-cased
的目录名转换为项目的PascalCased
类名。问题是,该函数只删除了
_
和-
,并且不大写下一个字母。使用.capitalize
或.upcase
,是否有办法使您的snake/hyphen_/-cased
名称成为正确的PascalCased
类名? 最佳答案
这会将大小写字符串拆分为一个数组;将每个成员大写并将数组粘回字符串:
def to_pascal_case(str)
str.split(/-|_/).map(&:capitalize).join
end
p to_pascal_case("snake_cased") #=>"SnakeCased"
您的代码无法工作有以下几个原因:
大写方法的结果对象被丢弃-
应该做些类似于
text.capitalize!
或text = text.capitalize
的事情。但是
capitalize
方法只是字符串的第一个字母,不是每个字的第一个字母。