Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby-命名约定-类/模块名称中首字母缩写的字母大小写?_Ruby_Naming Conventions - Fatal编程技术网

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

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”的类。但我不知道在Ruby中处理首字母缩略词时的惯例是什么,在Google中也找不到任何相关的东西,除了“驼峰案例优先”


我应该叫它
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
的类,并创建一个相关的表
svns

Ruby约定给它一个类似Tenpuku的名称,甚至是Tenpuku(根据Google Translate,日语代表Subversion)。;-)@马克·托马斯有趣的事实:滕普库(転覆) 可以表示“subversion”,但更常见的用法是。现在你知道了。;)我没有想到浏览Ruby源代码并查找首字母缩略词。非常聪明!我将使用
SCM:SVN
。谢谢我的问题是关于ruby的,不是关于rails的,但是你的回答可以帮助其他人。谢谢非常感谢。这一切都不同。尝试
“svn”。在将其添加到拐点之前和之后对其进行分类。在其他语言/平台中,没有这样的东西,所以使用可以自动转换的东西是有意义的。但是activesupport让我写任何看起来更好的东西。最终的结果是我更爱Ruby。