我已经创建了一个使用以下功能的web框架:

def to_class(text)
    text.capitalize
    text.gsub(/(_|-)/, '')
end

snake_casedhyphen-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方法只是字符串的第一个字母,
不是每个字的第一个字母。

09-17 18:41