मुझे रूबी कोड का एक बड़ा ढेर विरासत में मिला है, जो स्पष्ट रूप से, मेरे जैसे प्राणघातक को समझने के लिए असंभव है। यह वास्तव में रुपयेपीसी इकाई परीक्षण कोड है, लेकिन संरचना अच्छी तरह से रखने के लिए "बेहद असामान्य" है।रूबी प्रोग्राम में कॉल की जाने वाली हर विधि को मैं कैसे लॉग करूं?
क्या मैं निम्नलिखित जानकारी कहीं लॉग इन किया है करने के लिए कोड चलता है सक्षम होने के लिए, और चाहते हैं:
- हर विधि है कि लागू किया जाता है वर्ग पद्धति निर्धारित करता है के नाम भी शामिल हैं, और फ़ाइल नाम जहां आविष्कार विधि परिभाषित की गई है (हाँ, हमें एक ही कक्षा/विधि को कई अलग-अलग फाइलों में परिभाषित किया गया है, और यह जानना मुश्किल है कि कौन सा आह्वान किया जा रहा है)
- (वैकल्पिक रूप से) प्रत्येक विधि को पारित पैरामीटर
के साथ कि, मैं इसे पुन: सक्रिय करने की कोशिश करना शुरू कर सकता था। इसके बिना, कोड बेस (20k + यूनिट टेस्ट केस) के आकार के कारण, इसे सीधे प्राप्त करने के लिए यह एक बहुत ही मुश्किल काम होगा।
मैं कोड में जाने के लिए थोक संपादन करने और चलाने के लिए बर्दाश्त नहीं कर सकता, क्योंकि जब आप इसके आसपास कठोर भाषा का उपयोग करते हैं तो यह टूट जाता है (यानी अक्सर)। इसके बजाए, मुझे कोड को अपने मौजूदा राज्य में कोड करने में सक्षम होना चाहिए, या अब मौजूद होने वाले न्यूनतम परिवर्तनों के साथ।
क्या कोड आधार में थोक परिवर्तन किए बिना इस स्तर के विस्तार को लॉग करने का कोई तरीका है? मैंने रूबी प्रोफाइलर को यह देखने के लिए देखा है कि क्या यह मदद कर सकता है, और शायद यह हो सकता है; यदि कोई बेहतर तरीका है (विशेष रूप से आवेदित विधि वाले फ़ाइल नाम को लॉगिंग करना) तो मैं उत्सुक हूं।
अग्रिम
आप एक स्थिर विश्लेषक पर विचार किया है या आप केवल कुछ है कि वास्तव में कोड चलाता है के लिए देख रहे हैं? डॉक्सिजन कुछ अच्छे कॉलर/कैली ग्राफ का उत्पादन करता है, यह देखने के लिए नहीं देखा जाता है कि यह रूबी का समर्थन करता है लेकिन कॉल ग्राफ़ मौजूदा कोड को समझने के लिए बहुत उपयोगी साबित हो सकता है। –
मुझे यकीन है कि डॉक्सिजन रूबी का समर्थन नहीं करता है - अगर ऐसा होता है, तो यह निश्चित रूप से मेरे लिए उपयोगी होगा, लेकिन मुझे रूक्सी का समर्थन करने वाले डॉक्सीजन के बारे में कोई जानकारी नहीं मिल रही है। मैं कुछ ऐसा करना चाहता हूं जो वास्तव में कोड चलाता है, मुख्य रूप से जिस क्रम में संसाधित होने की आवश्यकता होती है, वह प्रभावित करेगा कि किसी दिए गए विधि की एकाधिक (गैर-समान) परिभाषाओं का उपयोग किया जाएगा। जैसा कि मैंने कहा, यह एक बदसूरत कोड बेस है ... – monch1962