2011-02-08 10 views
5

चलें पर विचार मैं एक बहुत लंबा मॉड्यूल पथ के अंदर एक वर्ग है:रूबी में पूर्ण मॉड्यूल पथ कैसे नहीं लिखें?

sux = Really::Long::Module::Path::Sucks.new 

सकता है मैं किसी भी तरह "आयात" एक तरह से इस मॉड्यूल है कि मैं सिर्फ हर बार जब मैं इसका इस्तेमाल इस पथ लेखन में चिंता किए बिना वर्ग इस्तेमाल कर सकते हैं ?

संपादित करें: मैं जानता हूँ कि एक ही मॉड्यूल में किया जा रहा है चीजों को आसान बना देता है। लेकिन मैं इस मामले में एक ही मॉड्यूल में नहीं हो सकता।

+0

-1 बदनामी के लिए। –

+0

आपका क्या मतलब है? मेरी बदनामी यहां लिखी गई है, आपकी पवित्रता नहीं है, कृपया स्पष्ट रहें ताकि लोग इससे सीख सकें। यदि आप नहीं जानते –

+0

तो क्या शब्द का अर्थ है, इसे यहाँ देखो: [गालियां बकने की क्रिया] (http://en.wiktionary.org/wiki/profanity) –

उत्तर

4

मॉड्यूल रूबी में एक वस्तु है, इसलिए तुम सिर्फ मॉड्यूल है कि कम है के लिए एक संदर्भ बना सकते हैं।

Sux = Really::Long::Module::Path::Sucks 
Sux.new 
+0

ओह, आपके प्रश्न को सावधानीपूर्वक पर्याप्त नहीं पढ़ा। निश्चित रूप से 'शामिल' मार्ग पर जाएं। मैं इस प्रश्न को हटा नहीं सकता क्योंकि यह कुछ मामलों में एक वैध दृष्टिकोण है (जब तक कोई ऑब्जेक्ट नहीं करता)। – cam

+0

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

+0

मैं सिर्फ यह है कि दूसरी पंक्ति बदल जाएगा के बाद से Sux अब एक उपनाम है वर्ग, नहीं यह का एक उदाहरण बेकार करने के लिए। Sux.new वह करेंगे। –

3

अपनी कक्षा में:

include Really::Long::Module::Path 

यह मूल रूप से, कि मॉड्यूल के स्थिरांक के सभी/सहित वर्ग में तरीकों घुलमिल ताकि आप तो सीधे Sucks वर्ग का उपयोग कर सकते हैं:

sux = Sucks.new 
2
module A; module B; module C; module D 
    class E; end 
end; end; end; end 

class Sanity 
    include A::B::C::D 
    puts E.new.object_id 
end 
संबंधित मुद्दे