2010-04-11 11 views
5

how से write rubygems पर उत्तर के साथ प्रश्न हैं, लेकिन आप rubygem लिखने से क्या बचना चाहिए? आपके रूबीगेम का उपयोग करने वाले लोगों के लिए समस्याएं क्या हो सकती हैं?rubygems लिखने के लिए Gotchas

उत्तर

5

Gem Packaging: Best Practices सलाह का एक बहुत देता है, जिनमें से कुछ में शामिल हैं

  • वैश्विक लोड पथ अपवित्र न करें। आदर्श रूप से, आपके lib निर्देशिका में केवल foo.rb है, और अपनी सभी अन्य फ़ाइलों को lib/foo पर रखें।

  • __FILE__ का उपयोग कर require फ़ाइलों को न करें।

  • लोड पथ के बाहर किसी भी चीज़ पर भरोसा न करें। आपके मूल संस्करण में फ़ोल्डरों की समान संरचना नहीं हो सकती है। उदाहरण के लिए,

    संस्करण = :: फ़ाइल.read (:: फ़ाइल.जॉइन (:: फ़ाइल.dirname (फ़ाइल), "..", "..", "संस्करण का उपयोग न करें ")) स्ट्रिप

  • के भीतर $LOAD_PATH का प्रबंधन न करें।

  • VERSION निरंतर प्रदान करें।

  • rubygems पर निर्भर न करें। आपके कोड का उपयोग करने वाला व्यक्ति rubygems का उपयोग नहीं कर सकता है, लेकिन कुछ अन्य पैकेजिंग सिस्टम (या कोई पैकेजिंग सिस्टम नहीं)। इसी तरह, कोड में संस्करण निर्भरताओं का उल्लेख न करें, या rescue Gem::LoadError

Rubygems dependencies. Please... का तर्क है कि आप वैकल्पिक क्रम निर्भरता सूचीबद्ध नहीं होने चाहिए, और क्रम निर्भरता से डेवलपर बांट देना चाहिए।

From my own experience: यदि कुछ और नहीं है, तो जंगली में इसे छोड़ने से पहले स्थानीय रूप से अपने मणि को बनाने और स्थापित करने का प्रयास करें। यह ब्राउन पेपर बैग रिलीज से बचाता है।

+0

निश्चित रूप से एक अच्छा और सही लेखन, विशेष रूप से "जेम पैकेजिंग: सर्वोत्तम व्यवहार" के संदर्भ में –

+0

आपका अंतिम बिंदु बहुत महत्वपूर्ण है। इसे मूल रूप से दोहराया जा सकता है: "रूबी रत्न लिखने के लिए एक महत्वपूर्ण गोचाम रत्न लिखना, पुस्तकालय लिखना नहीं है।" –

+0

@ जोर्ग: बहुत ज़ेन-जैसी। ("जेम पैकेजिंग: बेस्ट प्रैक्टिस" का अंतिम बिंदु, "मेरे अपने अनुभव से नहीं") –

संबंधित मुद्दे