2009-01-27 7 views
8

क्या स्थापित समय पर एक मणि पर सशर्त रूप से निर्भरता निर्धारित करना संभव है? यहां मेरी स्थिति है जो इस सवाल को स्पष्ट रूप से स्पष्ट करेगी।सशर्त मणि निर्भरता

एक मणि है जो मैं बनाए रखता हूं जो जेसन मणि पर निर्भर करता है। हालांकि, मैं अक्सर जर्बी का उपयोग करता हूं जिसमें जेसन मणि का बंदरगाह होता है जिसे जेसन-जर्बी कहा जाता है। इस के आसपास काम करने के लिए मुझे प्रत्येक निर्भरता के लिए दो अलग-अलग रत्न बनाना है। मैं एक मणि बनाना चाहता हूं जो कहता है कि यह जेसन या जेसन-जेरुबी पर निर्भर करता है, या यह इंस्टॉल समय पर जांचता है और सही निर्भरता का उपयोग करता है।

किसी के पास इसका कोई अच्छा समाधान नहीं है?

उत्तर

3

हम्म,

मेरा मानना ​​है कि एक से अधिक निर्भरता कोड कर सकते हैं, क्योंकि मैं जवाहरात जो यह करने के लिए लग रहा था ध्यान दिया है। लेकिन मैं आपको ऐसा करने के खिलाफ सलाह दूंगा। इससे कोई फर्क नहीं पड़ता कि आप जिस कोड को यहां सम्मिलित कर रहे हैं वह यह है कि, जब आप मानते हैं कि उपयोगकर्ता एक मणि लोड करेगा जो दूसरे पर निर्भर करता है जो किसी दूसरे पर निर्भर करता है, यहां तक ​​कि कोड के एक टुकड़े के तर्क में एक छोटी गड़बड़ी भी हो सकती है या कोई दूसरा पूरा कर सकता है निर्भरता एक दुःस्वप्न ट्रेन।

तो, मैं आपके क्लाउज को छोड़ दूंगा। इसके अलावा, मैं सुझाव दूंगा कि आपके पास एक टैरबॉल है जो उपयोगकर्ता भी डाउनलोड कर सकते हैं। मुझे मैन्युअल रूप से रत्नों के अंदर कोड निकालना पड़ा है जिनके कॉन्फ़िगरेशन कोड ने मुझे इंस्टॉल करने की अनुमति नहीं दी है।

3

चेकआउट कुछ हद तक एक यहाँ ट्यूटोरियल: http://wiki.github.com/rdp/ruby%5Ftutorials%5Fcore/gem

यह माणिक का कौन सा संस्करण installee उपयोग कर रहा है पर निर्भर करता है निर्भरता के विभिन्न संस्करणों के स्थापित करने के लिए कैसे पता चलता है। -

+1

लिंक करने के लिए ले जाया गया है (संक्षिप्त उत्तर यह उतना आसान के रूप में यह होना चाहिए नहीं है): http://en.wikibooks.org/wiki/Ruby_Programming/RubyGems#How_to_install_different_versions_of_gems_depending_on_which_version_of_ruby_the_installee_is_using –

+0

Yehuda Katz यह कहते हैं एक बुरा विचार है। और gemspec में एक सशर्त डालने और दो संस्करणों का निर्माण करने का सुझाव देता है। –

+0

gemspec में सशर्त "jruby बनाम mri" को नियंत्रित कर सकते हैं लेकिन (अभी तक) 1.8 रत्न बनाम 1.8 को नियंत्रित नहीं कर सकते हैं। मैं येहुदा से सहमत हूं कि यह एक बुरा विचार है, लेकिन वर्तमान में इसके अलावा मैं इसके लिए एक काम से अनजान हूं। – rogerdpack

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