我需要在名为“SCM”的模块中创建一个代表“SVN”的类。但我不知道在处理Ruby中的首字母缩略词时有什么惯例,除了“首选Camel案例”之外,在Google中找不到任何相关内容。
我应该将其称为SCM::SVN
还是Scm::Svn
?这是否有约定?
答案 0 :(得分:17)
将以下内容添加到config/initializers/inflections.rb
。
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'SVN'
end
现在运行$ rails g model SVN…
将在名为SVN
的文件和关联的表svn.rb
中创建名为svns
的类。
答案 1 :(得分:13)
SCM::SVN
对我来说最好。 Rails充满了像ERB,ORM和OMFGIMATEAPOT这样的类。而且更不用说像JSONSerializer这样的东西了。 Ruby的来源也有a bunch of acronyms。对我来说最明显的例子是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>
答案 2 :(得分:3)
我认为SCM::SVN
看起来更好(美学上),而且我看过使用相同约定的库。这只是你认为读得更好的问题。
(但是,请注意,如果要构建Rails项目,并希望从/ lib目录自动加载此模块,则可能必须使用Scm::Svn
。)