एक मानक रूबी परियोजना के मूल संरचना मूल रूप से है:
lib/
foo.rb
foo/
share/
foo/
test/
helper.rb
test_foo.rb
HISTORY.md (or CHANGELOG.md)
LICENSE.txt
README.md
foo.gemspec
share/
दुर्लभ है और कभी कभी है बजाय data/
कहा जाता है। यह सामान्य उद्देश्य गैर-रूबी फाइलों के लिए है।अधिकांश परियोजनाओं को इसकी आवश्यकता नहीं होती है, लेकिन जब भी वे कई बार करते हैं तब भी सब कुछ lib/
में रखा जाता है, हालांकि यह शायद सबसे अच्छा अभ्यास नहीं है।
test/
निर्देशिका spec/
कहा जा सकता है, तो BDD TDD के बजाय प्रयोग किया जा रहा है, हालांकि आप भी features/
अगर ककड़ी प्रयोग किया जाता है, या demo/
देख सकते हैं यदि QED प्रयोग किया जाता है।
इन दिनों foo.gemspec
केवल .gemspec
हो सकता है - खासकर अगर इसे मैन्युअल रूप से बनाए रखा नहीं जाता है।
अपनी परियोजना कमांड लाइन निष्पादनयोग्य है, तो जोड़ें:
bin/
foo
man/
foo.1
foo.1.md or foo.1.ronn
इसके अलावा, ज्यादातर रूबी परियोजना के होते हैं:
Gemfile
Rakefile
Gemfile
Bundler उपयोग करने के लिए है, और Rakefile
रैक के लिए है निर्माण उपकरण। लेकिन यदि आप विभिन्न टूल्स का उपयोग करना चाहते हैं तो अन्य विकल्प भी हैं।
कुछ अन्य नहीं-तो-असामान्य फ़ाइलें:
VERSION
MANIFEST
VERSION
फ़ाइल सिर्फ वर्तमान संस्करण संख्या में शामिल हैं। और MANIFEST
(या Manifest.txt
) में प्रोजेक्ट की पैकेज फ़ाइल (उदा। मणि पैकेज) में शामिल फ़ाइलों की एक सूची शामिल है।
और क्या आप देख सकते हैं, लेकिन उपयोग छिटपुट है:
config/
doc/ (or docs/)
script/
log/
pkg/
task/ (or tasks/)
vendor/
web/ (or site/)
कहाँ config/
विभिन्न विन्यास फाइल शामिल है; doc/
में या तो जेनरेट किए गए दस्तावेज़ हैं, उदा। आरडीओसी, या कभी-कभी मैन्युअल रूप से रखरखाव दस्तावेज; script/
में परियोजना द्वारा उपयोग के लिए खोल स्क्रिप्ट शामिल हैं; log/
में जेनरेट किए गए प्रोजेक्ट लॉग हैं, उदा। परीक्षण कवरेज रिपोर्ट; pkg/
जेनरेट की गई पैकेज फाइलें रखती है, उदा। foo-1.0.0.gem
; task/
foo.rake
या foo.watchr
जैसी विभिन्न कार्य फ़ाइलों को पकड़ सकता है; vendor/
में अन्य परियोजनाओं की प्रतियां शामिल हैं, उदा। गिट submodules; और अंत में web/
में प्रोजेक्ट की वेबसाइट फ़ाइलें शामिल हैं।
फिर कुछ उपकरण विशिष्ट फ़ाइलों कि भी अपेक्षाकृत काफी आम हैं:
.document
.gitignore
.yardopts
.travis.yml
वे काफी स्वतः स्पष्ट हैं।
अंत में, मैं जोड़ देगा कि मैं व्यक्तिगत रूप से एक .index
फाइल और एक var/
निर्देशिका है कि फाइल का निर्माण करने के लिए जोड़ ("Rubyworks अनुक्रमणिका" के लिए खोज के बारे में अधिक के लिए) और अक्सर एक work
निर्देशिका, कुछ की तरह:
work/
NOTES.md
consider/
reference/
sandbox/
विकास उद्देश्यों के लिए बस एक प्रकार का स्काइपर्ड।
नवीनतम न्यूजम बहुत कम क्रुफ़्ट पैदा करता है जो अच्छा है। –