रूबी कार्यक्रम में आवश्यक पथों का प्रबंधन करने का सबसे अच्छा तरीका क्या है?रूबी पथ प्रबंधन
मुझे एक बुनियादी उदाहरण दे की तरह एक संरचना पर विचार करें,:
\MyProgram
\MyProgram\src\myclass.rb
\MyProgram\test\mytest.rb
अपने परीक्षण में मैं require '../src/myclass'
का उपयोग तो मैं केवल \MyProgram\test
फ़ोल्डर से परीक्षण कॉल कर सकते हैं, लेकिन मैं इसे कॉल करने के लिए सक्षम होने के लिए चाहते हैं किसी भी रास्ते से!
ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(ROOT)
और फिर हमेशा require "#{ROOT}/src/myclass"
वहाँ यह करने के लिए एक बेहतर तरीका है का उपयोग करें:
समाधान मैं के साथ आया था सभी स्रोत में परिभाषित करने के लिए है निम्न पंक्ति फ़ाइलें? आदि स्पष्ट रूप से जब आप आप रूट की आपूर्ति करने की जरूरत नहीं है
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), "..", "src"))
$ LOAD_PATH (उर्फ $ :) करने के लिए अपने स्रोत के लिए पथ prepending द्वारा:
, इस सबसे अच्छा विकल्प मैं इस _inside_ करने के लिए देखा है है अब तक रूबी का। – Matt
यह कहना है कि, मैं रूबी पथ के पथ को जोड़ना (पूर्ववत नहीं करना) पसंद करता हूं, क्योंकि आप मानक रूबी पुस्तकालयों में मौजूद किसी चीज़ पर अनजाने में चिपकते नहीं हैं। – Matt
क्या आपका मतलब यह नहीं था कि 'मैं इसके बजाय प्रीपेडिंग (संलग्न नहीं) पसंद करता हूं? (दूसरे शब्दों में: क्या आप वास्तव में यह सुनिश्चित करना नहीं चाहते हैं कि आपकी सामग्री को प्राथमिकता दी जाए?) मेरा मूल उदाहरण '$: << newpath' था जो जोड़ रहा था, अब इसे 'unshift' द्वारा तय किया गया था, जैसा कि पिछले उत्तर में किया गया था। धन्यवाद – inger