2009-10-17 14 views
54

मुझे इस स्थिति में खुद को दो बार मिला है: मैं अपने सिस्टम पर एक मणि स्थापित करता हूं और इसे अपने रेल परियोजना से उपयोग करना शुरू करता हूं। आखिर में मुझे उस मणि में कुछ बदलाव करने की ज़रूरत है। मुझे कैसे आगे बढ़ना चाहिए?एक रेल परियोजना के लिए एक मणि फोर्किंग

आदर्श रूप से मैं उस मणि के स्रोत कोड को कहीं भी देखना चाहता हूं, जैसे ~/third_party/रत्न, उस पर काम करें और इसके बजाय मेरी रेल परियोजना का उपयोग करें। क्या यह संभव है?

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

+0

गिटहब में बिल्डिंग रत्न चरणबद्ध हो रहा है। http://github.com/blog/515-gem-building-is-defunct –

उत्तर

92

आज यह बंडलर के साथ करना बहुत आसान है। आप मणि की एक स्थानीय प्रति और उसके बाद के बजाय अपनी Gemfile में

gem "whatever" 

कर बनाने के लिए, आप करते हैं:, मणि कि निर्देशिका से उठाया जाता है

gem "whatever", :path => "/home/pupeno/whatever" 

बंडल स्थापित चलाने के बाद। यहां तक ​​कि यदि आप वहां कुछ संशोधित करते हैं, तो आपको इसे फिर से लोड करने के लिए केवल रेल को पुनरारंभ करना होगा।

आप एक रत्न का अपना स्वयं का परिवर्तन का उपयोग कर एक आवेदन को तैनात करने की जरूरत है, तो आप Github या इसी तरह की पर एक कांटा बनाने के लिए, और Gemfile पर आप कार्य करें:

gem "whatever", :git => "[email protected]:/pupeno/whatever.git" 

और बस इतना ही। यह सरल, सीधा और सुंदर है।

+2

यह उपयोगी है, क्योंकि कुछ मामलों में, एक मणि है जो बासी है, या कार्यक्षमता है जिसे मैं एक स्टारिंग पॉइंट के रूप में उपयोग करना चाहता हूं। धन्यवाद। –

+0

बहुत उपयोगी समाधान! – RubyFanatic

+16

मैं सार्वजनिक गिट यूआरएल का उपयोग करने का सुझाव देता हूं। 'git: // github.com/pupeno/whatever.git' निजी के बजाय (' [email protected]: pupeno/whatever.git') यदि अन्य लोग आपकी परियोजना का उपयोग करते हैं और आपके पास निजी पहुंच नहीं है रेपो –

5

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

यदि आपको वास्तव में वास्तविक मणि स्रोत हैक करने की आवश्यकता है तो हाँ, यह करने का तरीका होगा। हालांकि, यह एक अंतिम उपाय होना चाहिए। यदि आपको ऐसा करने की ज़रूरत नहीं है तो आप वास्तविक मणि को बनाए रखना नहीं चाहते हैं। मणि स्रोत से कक्षाओं का विस्तार क्यों नहीं करें, जिनकी कार्यक्षमता आपको अपने रेल कोड में मणि कक्षाओं के बजाय अपनी कक्षाओं को बदलने और उपयोग करने की आवश्यकता है?

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

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