« igo-rubyを作った経緯 | トップページ | 記憶力 »

2010年12月17日 (金)

RubyGemsの命名規約

Rubyigo-rubyの名前を決めるときにigo-rubyとigo_rubyとigorubyで悩んだ。

gemsの命名規約はたぶん厳密には決まってないんだけど、How to Name Gems強く推奨しているのは

  1. 通常requireするgemはアンダースコア(_)を使う。
  2. 他のgemを拡張する場合はハイフン(-)を使う。install net-http-persistentならrequireは"net/http/persistent"となる。
  3. アッパーケース(UpperCamel)は使わない。
という規則。

上記に従えばigo-rubyではなくigo_rubyとなるんだけど、igo-rubyはIgoのRuby版という位置づけだし、すでにigo-pythonもある。

あと、"ruby"に限れば、アンダースコア(*_ruby)よりもハイフン(-ruby)の方が多い気がする。
ということで、公開されているgemsの一覧を取得して、カウントしてみた。

まずは"_ruby"で終わるgems。

$ gem list -r | grep -e ".*_ruby "
cheddargetter_client_ruby (0.2.1)
collecta_ruby (0.1.3)
dcu-purple_ruby (0.7.0)
endless_ruby (0.0.1)
purple_ruby (0.6.7)
rrt_ruby (0.3.1 mswin32)
ruboss_on_ruby (1.0.1)
shattered_ruby (0.5.1)
strophe_ruby (0.0.5 ruby x86_64-linux)
talib_ruby (1.0.1)
tem_ruby (0.16.0)
which_ruby (0.0.3)
win_user32_ruby (0.1.0)
xbm_ruby (1.0.1)
15個。
一方、"-ruby"で終わるgemsは
$ gem list -r | grep -e ".*-ruby "
aalib-ruby (0.7.1)
adesklets-ruby (0.2.0)
amazon-fps-ruby (1.0.0)
atmos-ruby (1.4.0.7)
bb-ruby (0.9.5)
bcrypt-ruby (2.1.2)
benofsky-yajl-ruby (0.7.7)
btparse-ruby (0.2)
bzip2-ruby (0.2.7)
constant-contact-ruby (0.2.4)
couchdb-ruby (0.8.0)
coupa-libxml-ruby (1.1.4)
cql-ruby (0.8.2)
dailymile-ruby (0.1.3)
darcs-ruby (0.0.1)
dcas-ruby (0.4.0)
dnsimple-ruby (0.8.3)
dokan-ruby (0.0.1 mswin32)
douban-ruby (0.0.7)
dsf-ruby (0.0.0)
edge-parsley-ruby (0.4.5)
espeak-ruby (0.3.0)
evented-gearman-ruby (1.0.0)
evil-ruby (0.1.0)
fetchapi-ruby (1.1.1)
ffmpeg-ruby (0.1.3)
filipegiusti-yajl-ruby (0.6.4)
fitnesse-ruby (0.1.0)
fityk-ruby (1.0.0)
frenchrevcal-ruby (1.0.0)
ft2-ruby (0.1.3)
gearman-ruby (3.0.3)
google-spreadsheet-ruby (0.1.2)
gowalla-ruby (0.0.5)
greenpepper-ruby (0.0.1)
grendel-ruby (0.1.5)
gvoice-ruby (0.3.3)
harvest-ruby (0.1.1)
hbase-ruby (1.2.0)
id3lib-ruby (0.6.0 ruby x86-mswin32-60)
igo-ruby (0.1.2)
ipxact-ruby (0.13.0)
jberkel-mysql-ruby (2.8.1)
jblas-ruby (1.1.1)
kaltura-ruby (0.1.1)
koi-vm-ruby (0.0.4)
lda-ruby (0.3.1)
le1t0-parsley-ruby (0.4.5.001)
libqalculate-ruby (0.0.1)
libxml-ruby (1.1.4 ruby x86-mswin32-60)
libxosd-ruby (0.4)
libxosd2-ruby (0.4)
libxsl-ruby (0.3.6)
libxslt-ruby (0.9.7)
matlab-ruby (2.0.3)
mediainfo-ruby (0.2.0)
ming-ruby (1.0 mswin32)
ml-ruby (0.0.1)
monetra-ruby (0.0.6)
mplayer-ruby (0.1.0)
myspace-ruby (0.7.1)
newick-ruby (1.0.3)
nozbe-ruby (0.2.0)
nugramserver-ruby (0.1.0)
nvtristrip-ruby (0.5.0)
octave-ruby (1.0.9)
opentick-ruby (0.1.1)
opentox-ruby (0.0.2)
org-ruby (0.5.3)
osc-ruby (0.7.0)
pandoc-ruby (0.4.1)
pangel-sg-ruby (0.1.1)
parsley-ruby (0.4.5)
penctl-ruby (0.1.3)
phpass-ruby (0.1.2)
pomo-ruby (0.0.3)
portal-ruby (0.0.2)
ppe-4store-ruby (0.0.3)
prince-ruby (0.3.0)
puremvc-ruby (1.0.0)
radamanthus-superfeedr-ruby (0.4.3)
remember-the-ruby (1.3.0)
remoteling-ruby (0.0.5)
rounders-gdata-ruby (1.1.2)
s3-ruby (0.1.0)
saas_pulse-ruby (0.1.2)
sam-mysql-ruby (2.8.1)
serdisplib-ruby (0.5.2 x86-linux)
sg-ruby (0.1.0)
shodan-ruby (0.1.1)
sishen-hbase-ruby (1.0)
solr-ruby (0.0.8)
sprout-google-spreadsheet-ruby (0.0.1)
sqlite-ruby (2.2.3 ruby mswin32)
sqlite3-ruby (1.3.2 ruby x86-mingw32 x86-mswin32-60, 1.2.5 x86-mswin32, 1.2.3 mswin32)
sugestio-ruby (0.1.0)
superfeedr-ruby (0.4.3)
thumbnailer-ruby (0.1.2)
tickspot-ruby (0.1.0)
tropo-webapi-ruby (0.1.9)
tuio-ruby (0.2.5)
twaudio-ruby (0.1)
tworgy-ruby (0.4.2)
typesafe-ruby (0.0.2)
userapi-ruby (0.0.1)
velir_kaltura-ruby (0.4.9)
viddler-ruby (0.1.0)
vim-ruby (2007.05.07)
vtk-ruby (5.0.4.0 x86-mswin32-60)
web-socket-ruby (0.1.0)
win-gdi32-ruby (0.1.3)
win-user32-ruby (0.1.7)
wolframarnold-google-spreadsheet-ruby (0.1.4)
wordnik-ruby (0.3.2)
xmlsec-ruby (0.0.6)
yajl-ruby (0.7.8)
116個。
圧倒的に"-ruby"が多い。
やっぱり○○のRuby版という意味のgemsは"-ruby"をつけてるんじゃないかと思う。(そういう意味づけじゃないgemsも多々あるかとは思いますが。)

これらを勘案して、今回はigo-rubyとした。

|

« igo-rubyを作った経緯 | トップページ | 記憶力 »

Ruby」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/16742/50320677

この記事へのトラックバック一覧です: RubyGemsの命名規約:

» 猫背の治し方 [治す方法!悩まず今すぐ!]
猫背の治し方について書いてみました。よかったら見てください。 [続きを読む]

受信: 2010年12月18日 (土) 11:42

« igo-rubyを作った経緯 | トップページ | 記憶力 »