我需要在名为“SCM”的模块内创建一个代表“SVN”的类。但我不知道在Ruby中处理缩略词时会有什么约定,并且在Google中找不到任何与之相关的内容,除非“Camel case is preferred”。Ruby - 命名约定 - 类/模块名称中缩写词的字母大小写?
我应该叫它SCM::SVN
还是Scm::Svn
?这是否有一个约定?
我需要在名为“SCM”的模块内创建一个代表“SVN”的类。但我不知道在Ruby中处理缩略词时会有什么约定,并且在Google中找不到任何与之相关的内容,除非“Camel case is preferred”。Ruby - 命名约定 - 类/模块名称中缩写词的字母大小写?
我应该叫它SCM::SVN
还是Scm::Svn
?这是否有一个约定?
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>
我没有想到要浏览Ruby源代码并寻找缩略词。非常聪明!我将使用'SCM:SVN'。谢谢! – kikito 2012-02-15 13:12:24
我认为SCM::SVN
看起来更美观(美学),我也见过使用相同约定的库。这真的只是你认为更好的问题。
(但请注意,如果你正在建设一个Rails项目,并希望该模块从/ lib目录被自动加载,您可能需要使用Scm::Svn
)。
关于Rails的好处。谢谢! – kikito 2012-02-15 13:12:56
添加以下config/initializers/inflections.rb
。
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'SVN'
end
现在运行$ rails g model SVN…
将创建一个名为SVN
在名为svn.rb
文件和相关的表svns
类。
嗯,我的问题是关于一般的ruby,而不是特别的rails,但是你的回答可以帮助其他人。谢谢! – kikito 2014-02-19 15:25:10
谢谢。这使所有的差异。在将其添加到变形器之前和之后尝试'svn'.classify'。在其他语言/平台中,没有这种东西,所以使用可以自动转换的东西是有意义的。但主动支持可以让我写更好看的东西。最终的结果是我更喜欢Ruby。 – 2017-09-15 17:39:33
Ruby约定是给它一个像[trollop](https://rubygems.org/gems/trollop),[asset_hat](https://github.com/mintdigital/asset_hat)或者甚至Tenpuku根据谷歌翻译日语为Subversion)。 ;-) – 2012-02-15 12:26:06
@MarkThomas有趣的事实:_tenpuku_(転覆)可能意味着“颠覆”,但更常见的用法是[倾覆和翻转](https://www.google.com/search?q=%E8 %BB%A2%E8%A6%86&TBM = isch&BIW = 1438&波黑= 719&SEI = bKs7T-3qDcydmQX1rri8Cw)。现在你知道了。 ;) – brymck 2012-02-15 12:53:40