2010-04-23 11 views
10

यदि मेरे रेकैक को किसी विशेष नाम के साथ कोई कार्य नहीं मिलता है, तो मुझे rake चाहिए, इसके बजाय कुछ नियमों के अनुसार उस नाम से एक नया कार्य बनाएं, यदि अनुपलब्ध कार्य नाम वाली फ़ाइल मौजूद है। लेकिन अगर ऐसा नहीं होता है, तो मैं डिफ़ॉल्ट पर वापस आना चाहता हूं ("यह नहीं पता कि कार्य कैसे बनाएं 'foo'!)।क्या रेक कार्यों के लिए "method_missing" है?

संक्षेप में, क्या रेक के लिए method_missing है?

+1

मुझे यह जानना अच्छा लगेगा कि यह संभव है या नहीं। मुझे नहीं लगता कि 'method_missing' वास्तव में देखने के लिए सही चीज़ है। रेक वास्तव में कार्यों के लिए, तरीकों से नहीं, नाम देख रहे हैं। यदि यह 'task_missing' हुक जैसा कुछ था, तो यह अधिक उपयुक्त होगा कि आप ओवरराइड कर सकते हैं, लेकिन कोड का एक कर्सर निरीक्षण ऐसा कुछ भी नहीं दिखाता है। –

उत्तर

11

मैंने कोशिश नहीं की है, लेकिन एक त्वरित खोज this प्रकट हुई।

आप एक खाली तार के साथ एक नियम निर्धारित हैं, तो आप किसी भी कार्य को कहीं परिभाषित नहीं किया गया है पकड़ कर सकते हैं। यह रेक कार्यों को गतिशील रूप से बनाना आसान बनाता है। अनिवार्य रूप से, यह रेक के लिए method_missing है!

rule "" do |t| 
    t.name 
    # ... do something with the name of the task 
end 
+0

मेरे लिए पूरी तरह से काम करता है – opsb

+0

यह बहुत अच्छा काम करता है। सिवाय इसके कि मुझे किसी नियम से/lib फ़ोल्डर में किसी भी चीज़ तक पहुंच नहीं है। – CarlosCervantes

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