Ruby - 命名约定 - 类/模块名称中首字母缩略词的字母大小写?

kik*_*ito 17 ruby naming-conventions

我需要在名为"SCM"的模块中创建一个代表"SVN"的类.但我不知道在Ruby中处理首字母缩略词时的惯例是什么,除了"Camel case is preferred"之外,在Google中找不到任何相关内容.

我应该打电话SCM::SVN还是Scm::Svn?这是一个约定吗?

Mik*_*ike 18

添加以下内容config/initializers/inflections.rb.

ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.acronym 'SVN'
end
Run Code Online (Sandbox Code Playgroud)

现在运行$ rails g model SVN…将创建一个SVN在命名文件svn.rb和关联表中命名的类svns.

  • 好吧,我的问题一般是红宝石,特别是铁轨,但你的答案可以帮助其他人.谢谢! (4认同)

bry*_*mck 13

SCM::SVN对我来说最好看.Rails充满了ERB,ORM和OMFGIMATEAPOT等类.而且更不用说像JSONSerializer这样的东西了.Ruby的源代码也有一堆缩略语.对我来说最明显的例子是YAML.正如我所看到的那样,标准是为CamelCase加上字母,但一般不要将它们包括在内(尽管Rails对模型名称有意见).

如果你有grep和源代码,你可以看到大量的例子

grep -r 'class [A-Z]\{3,\}' <path/to/source>
# or, if you only want acronyms and nothing like YAMLColumn:
grep -rw 'class [A-Z]\{3,\}' <path/to/source>
Run Code Online (Sandbox Code Playgroud)