我需要在名爲「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