2012-04-07 5 views
6

मैं रेलवे 3.2 के लिए रेल 2 आवेदन को अपग्रेड कर रहा हूं और एक मुहावरे के रूप में वर्णित है।टैप विधि - क्या मैंने एपीआई डॉक्स को सही ढंग से समझा है?

person.tap |p| do

जब मैं इस और it appears to have been deprecated or moved के लिए Google पर। क्या मेरी समझ सही है?

मैं पूछता हूं क्योंकि मुझे SO पर कुछ उदाहरण मिल सकते हैं।

उत्तर

10

tap विधि Ruby since 1.8.7 में कर दिया गया है:

नल {| x | ...} => obj

पैदावार ब्लॉक करने के लिए x, और फिर x देता है। श्रृंखला के भीतर मध्यवर्ती परिणामों पर संचालन करने के लिए, इस विधि का प्राथमिक उद्देश्य एक विधि श्रृंखला में "टैप करें" है।

ध्यान दें कि 1.8.6 में Object#tap नहीं था। संभवतः, tap रेल के पुराने संस्करणों में था (Object पर एक बंदर पैच के रूप में) लेकिन रूबी को 1.8.7 में जोड़ा गया था। चूंकि 1.8.6 अब प्राचीन है, रेल संस्करण को हटा दिया गया था और, हाल ही में रेल रिलीज में, पूरी तरह से हटा दिया गया था।

1.9.3 अभी भी Object#tap है इसलिए tap स्वयं को बहिष्कृत नहीं किया गया है, केवल रेल बंदर पैच किए गए संस्करण को हटा दिया गया है।

+0

मेरी अज्ञानता क्षमा करें क्योंकि मैं मूल बातें सीखता हूं। मुझे लगता है कि इसका मतलब है कि मैं अभी भी इसका उपयोग कर सकता हूं। जब आप "टैप इन" कहते हैं, तो क्या इसका मतलब है कि तरीकों के बीच 'गोंद' की तरह जब कोई विधि सीधे नहीं कहा जा सकता है? – user1149642

+0

@ user1149642: हाँ, आप अभी भी इसका उपयोग कर सकते हैं। मेरे द्वारा लिंक किए गए दस्तावेज़ों में कुछ उदाहरण हैं। –

4

Object#tapActiveSupport से बंदर पैच को हटा दिया गया है क्योंकि यह 1.9.0 और 1.8.7 के बाद रूबी का हिस्सा रहा है।