Ruby-命名约定-类/模块名称中首字母缩写的字母大小写?
我需要在名为“SCM”的模块中创建一个表示“SVN”的类。但我不知道在Ruby中处理首字母缩略词时的惯例是什么,在Google中也找不到任何相关的东西,除了“驼峰案例优先”Ruby-命名约定-类/模块名称中首字母缩写的字母大小写?,ruby,naming-conventions,Ruby,Naming Conventions,我需要在名为“SCM”的模块中创建一个表示“SVN”的类。但我不知道在Ruby中处理首字母缩略词时的惯例是什么,在Google中也找不到任何相关的东西,除了“驼峰案例优先” 我应该叫它SCM::SVN还是SCM::SVN?有这样的约定吗?我认为SCM::SVN看起来更好(美观),我也见过使用相同约定的库。这实际上只是你认为什么读起来更好的问题 (但是,请注意,如果您正在构建Rails项目,并且希望从/lib目录自动加载此模块,则可能必须使用Scm::Svn)Scm::Svn在我看来最合适。Rai
我应该叫它
SCM::SVN
还是SCM::SVN
?有这样的约定吗?我认为SCM::SVN
看起来更好(美观),我也见过使用相同约定的库。这实际上只是你认为什么读起来更好的问题
(但是,请注意,如果您正在构建Rails项目,并且希望从/lib目录自动加载此模块,则可能必须使用
Scm::Svn
)Scm::Svn
在我看来最合适。Rails中有很多类,比如ERB、ORM和。更不用说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>
grep-r'class[A-Z]\{3,\}
#或者,如果您只需要首字母缩略词,而不需要YAMLColumn:
grep-rw'class[A-Z]\{3,\}'
将以下内容添加到config/initializers/inductions.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'SVN'
end
现在运行
$rails g model SVN…
将在一个名为SVN.rb
的文件中创建一个名为SVN
的类,并创建一个相关的表svnsRuby约定给它一个类似Tenpuku的名称,甚至是Tenpuku(根据Google Translate,日语代表Subversion)。;-)@马克·托马斯有趣的事实:滕普库(転覆) 可以表示“subversion”,但更常见的用法是。现在你知道了。;)我没有想到浏览Ruby源代码并查找首字母缩略词。非常聪明!我将使用SCM:SVN
。谢谢我的问题是关于ruby的,不是关于rails的,但是你的回答可以帮助其他人。谢谢非常感谢。这一切都不同。尝试“svn”。在将其添加到拐点之前和之后对其进行分类。在其他语言/平台中,没有这样的东西,所以使用可以自动转换的东西是有意义的。但是activesupport让我写任何看起来更好的东西。最终的结果是我更爱Ruby。