2013-06-27 8 views
11

मैं एक शेफ रेपो में व्यंजनों में एक छोटी मुट्ठी भर तरीकों को साझा करना चाहता हूं। मुझे पता है कि एक कुकबुक स्तर पर मैं पुस्तकालय निर्देशिका में मॉड्यूल में कोड डाल सकता हूं (related question देखें)। जो मैं खोज रहा हूं वह ऐसा कुछ है लेकिन मेरे शेफ रेपो में सभी कुकबुक में उपलब्ध है।मैं शेफ-रेपो में शेफ कुकबुक में कोड कैसे साझा करूं?

मैं एक जोड़े को समाधान के बारे में सोच सकते हैं:

  • एक रत्न बनाएं, महाराज रन के हिस्से के रूप मणि स्थापित करें। यह ओवरकिल की तरह लगता है।
  • फ़ाइल को कुछ फ़ोल्डर में रखें और उस फ़ोल्डर को $LOAD_PATH पर नुस्खा फ़ाइल में जोड़ें। मुझे एक एहसास है कि वास्तविक तैनाती के साथ काम नहीं करेगा क्योंकि शेफ सर्वर रेपो के बारे में कुछ भी नहीं जानता है।
  • फ़ाइल को कुछ फ़ोल्डर में रखें और प्रत्येक कुकबुक की लाइब्रेरी निर्देशिका में सिम्लिंक करें।

आखिरी विकल्प सबसे व्यवहार्य की तरह लगता है। क्या मैं चाहता हूं कि ऐसा करने के लिए कोई बेहतर/अधिक मूर्ख तरीका है?

+0

जब आप कहते हैं कि "विधियों" क्या आप शुद्ध रूबी कोड का जिक्र कर रहे हैं, या यह कोड है जो शेफ के डीएसएल का उपयोग करता है जिसे व्यंजनों में रखा जा सकता है? यदि यह शुद्ध रूबी है, तो एक मणि सबसे अच्छा तरीका हो सकता है, और जब तक आपके पास कोड की केवल कुछ पंक्तियां न हों, मैं इसे शायद ही कभी ओवरकिल के रूप में देखता हूं। यदि यह शेफ कोड है, तो एलडब्ल्यूआरपी के साथ लाइब्रेरी कूकबुक बनाएं और इसे अपनी शीर्ष-स्तरीय एप्लिकेशन कुकबुक में शामिल करें। यह दूसरा दृष्टिकोण शुद्ध रूबी पुस्तकालयों के लिए काम कर सकता है, लेकिन मैंने यह सुनिश्चित करने की कोशिश नहीं की है। – cassianoleal

+1

यह मुख्य रूप से शुद्ध रूबी कोड है। शायद एक दर्जन उपयोगिता विधियों। मैं शेफ के निर्भरता प्रबंधन से बहुत परिचित नहीं हूं, लेकिन मुझे आश्चर्य है कि क्या यह एक कुकबुक बनाने के लिए काम करेगा जो कि उसके पुस्तकालय फ़ोल्डर में साझा कोड है। – dantswain

+0

मैंने अभी कोशिश की है और यह कम से कम नहीं, काम नहीं कर रहा है। मुझे अभी भी लगता है कि मणि पथ सबसे अच्छा हो सकता है। :) – cassianoleal

उत्तर

17

आप किसी अन्य रसोई की किताब से एक पुस्तकालय परिभाषित समारोह का उपयोग कर सकते हैं, लेकिन आप बावर्ची सिखाने करना होगा कि आपकी रसोई की किताब depend प्रदान रसोई की किताब पर रों।

तो, उदाहरण के लिए, रसोई की किताब ए में हैं, तो आप एक libraries/default.rb कुछ समारोह f प्रदान करता है, आप इतने लंबे समय के रूप में बी की metadata.rb फ़ाइल लाइन भी शामिल है रसोई की किताब बी से उस तक पहुँच सकते हैं:

depends "A" 

देखें अधिक जानकारी के लिए metadata और libraries पर शेफ दस्तावेज़।

+0

वादा करता है लगता है! मैं कल कोशिश करूँगा। – dantswain

+0

इस पर हार नहीं है! बस कोशिश करने के लिए समय नहीं था। – dantswain

+1

अंत में लागू करने का मौका था। महान काम किया! – dantswain

0

इसमें 3 अलग विकल्प या तो महाराज संसाधन के रूप में कोड साझा करने के लिए अनुमति देता है (1. LWRP, 2. HWRP) या तरीकों (3. "पुस्तकालयों") कर रहे हैं। मेरा सुझाव है कि आप पहले एलडब्ल्यूआरपी पर विचार करें। मुझे this answer बताई गई तकनीकों के बीच मतभेदों को समझाने में बहुत अच्छा लगता है।

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