Bence bu oldukça yerinde. Varsayılan olarak, Rubygems lib dizinini yük yoluna ekler, ancak istediğiniz dizini $: değişkenini kullanarak ona itebilirsiniz. yani
$:.push File.expand_path(File.dirname(__FILE__) + '/../surfcompstuff')
Bu, surfer.rb
o dizinde, istediğiniz require "surfer"
yere gidebileceğinizi ve dosyanın bulunacağını söylediğinizde anlamına gelir .
Ayrıca, bir kural olarak, sınıflar ve singletonlar bir dosya alır ve modüller bir dizin alır. Örneğin, LolCatz
modüle ve LolCatz::Moar
şöyle görünecek sınıfa sahipseniz :
lib/
appname.rb
lolcatz/
moar.rb
Bu yüzden bir lib / appname klasörü vardır, çünkü çoğu kitaplık appname
ad alanında bulunur.
Ek olarak, newgem --simple [projectname]
bir Ruby projesi için (ve uzantı olarak bir Ruby Gem) sizin için hızlı bir şekilde bir yapı iskelesi oluşturacak komutu çalıştırmayı denerseniz . Bunu yapan başka araçlar da var, biliyorum ama newgem oldukça yaygın. Genelde TODO dosyasından ve tüm betik şeylerinden kurtulurum.