मुझे लगता है कि इस पर बहुत ज्यादा जगह है। डिफ़ॉल्ट रूप से, Rubygems, libpath को लोडपैथ में जोड़ देगा, लेकिन आप उस किसी भी निर्देशिका को धक्का दे सकते हैं जो $: चर का उपयोग कर रही है। अर्थात
$:.push File.expand_path(File.dirname(__FILE__) + '/../surfcompstuff')
इसका मतलब है कि जब आप कहते हैं, surfer.rbउस डायर में, आप require "surfer"कहीं भी हो सकते हैं और फ़ाइल मिल जाएगी।
इसके अलावा, एक सम्मेलन के रूप में, कक्षाओं और एकलताओं को एक फ़ाइल मिलती है और मॉड्यूल को एक निर्देशिका मिलती है। उदाहरण के लिए, यदि आपके पास LolCatzमॉड्यूल और LolCatz::Moarवर्ग है जो ऐसा दिखेगा:
lib/
appname.rb
lolcatz/
moar.rb
इसीलिए एक lib / appname फोल्डर है क्योंकि ज्यादातर लाइब्रेरी appnameनेमस्पेस में होती हैं।
इसके अतिरिक्त, यदि आप कमांड को चलाने की कोशिश करते हैं newgem --simple [projectname]जो आपको रूबी प्रोजेक्ट के लिए सिर्फ नंगे आवश्यक के साथ (और एक रूबी जेम एक्सटेंशन करके) आपके लिए एक मचान बना देगा। वहाँ अन्य उपकरण हैं जो ऐसा करते हैं, मुझे पता है, लेकिन newgem बहुत आम है। मुझे आमतौर पर TODO फ़ाइल और सभी स्क्रिप्ट सामग्री से छुटकारा मिलता है।