-
डायनामिक Ruby Enumerators: ऑन-द-फ्लाई निर्माण के लिए एक त्वरित गाइड
जब आप अपने कलेक्शन को enumerators के रूप में ट्रीट करते हैं, तो आप #map और #reduce जैसे अपने सभी पसंदीदा फंक्शन का उपयोग कर सकते हैं, बिना कोई अतिरिक्त कोड लिखे। यह बहुत बढ़िया है। पुराने दिनों में Enumerators को परिभाषित करना पुराने दिनों में, enumerators को परिभाषित करना थोड़ा मुश्किल था। आपको एक
-
रेल्स एप्लिकेशन में टर्बोलिंक्स को दुःस्वप्न से लाभ में बदलें
टर्बोलिंक्स - यह शायद रेल्स ब्रह्मांड में सबसे अधिक नफरत किए जाने वाले शब्दों में से एक है। शायद आपने इसे आज़माया। आपने इसे नए प्रोजेक्ट या मौजूदा ऐप में शामिल किया। और जल्द ही ऐप अजीब और अद्भुत तरीकों से विफल होने लगा। अच्छी बात है कि फिक्स उतना ही आसान था - टर्बोलिंक्स बंद कर दें। ...लेकिन कुछ कंप
-
H2 हेडिंग से ऑटो-जेनरेट सबनेव के लिए जेकिल प्लगइन बनाएं
मैं जेकिल का उपयोग करके अपनी डॉक्यूमेंटेशन साइट को पुनर्निर्माण कर रहा हूँ। चूंकि हमारे डॉक्यूमेंटेशन पेज काफी बड़े हैं, इसलिए टॉप-लेवल नेविगेशन के अलावा हमें किसी प्रकार के सबनेविगेशन की आवश्यकता है। इस पोस्ट में हम कवर करेंगे कि एक साधारण जेकिल प्लगइन कैसे बनाया जाए जो आपके पोस्ट या पेज में हेडिं
-
गहरा गोता: जेकिल में मल्टी-लेवल सबनेविगेशन बनाना
पिछली पोस्ट में मैंने आपको दिखाया था कि जेकिल पेज में प्रत्येक H2 के लिए सबनेविगेशन लिंक कैसे उत्पन्न करें। इस पोस्ट में, हम उस नींव पर निर्माण करेंगे और आपको दिखाएंगे कि H3, H4, आदि के आधार पर सबनेविगेशन के मनमाने स्तर कैसे जोड़ सकते हैं। अवलोकन मैंने इस प्रोजेक्ट को कुछ चरणों में विभाजित किया है:
-
रूबी रिफाइनमेंट समझाया गया: लेक्सिकल स्कोप आपके कोड को कैसे आकार देता है
यदि आपने पहले कभी रिफाइनमेंट का उपयोग नहीं किया है, तो आप शायद आश्चर्य में होंगे। आपने सुना होगा कि रिफाइनमेंट को मंकी पैचिंग को बदलने के लिए पेश किया गया था। इसलिए आप उम्मीद कर सकते हैं कि आप एक्टिवसपोर्ट के hours मेथड जैसा कुछ लागू कर पाएंगे: module TimeExtension refine Fixnum do def hours self *
-
रूबी रिफाइनमेंट का प्रदर्शन विश्लेषण: बेंचमार्क और अंतर्दृष्टि
यदि आप रूबी रिफाइनमेंट के लिए गूगल खोजते हैं बिना किसी बैक स्टोरी को जाने तो आप इस विचार के साथ आ सकते हैं कि रिफाइनमेंट धीमे हैं। जैसा कि वे मूल रूप से प्रस्तावित थे, रिफाइनमेंट धीमे होते। वे इंटरप्रेटर के लिए मेथड लुकअप जैसी चीजों को अनुकूलित करना असंभव बना देते। लेकिन रिफाइनमेंट का वास्तविक कार्य
-
रूबी 2.0 के ओनिगमो में महारत हासिल करें: रेगुलर एक्सप्रेशन में सशर्त अभिव्यक्ति का उपयोग
रूबी 2.0 द्वारा 2013 में शिप की गई कई नई सुविधाओं में से, जिस पर मैंने कम से कम ध्यान दिया वह था नया रेगुलर एक्सप्रेशन इंजन, ओनिगमो। आखिरकार, रेगुलर एक्सप्रेशन तो रेगुलर एक्सप्रेशन हैं - मुझे इसकी परवाह क्यों करनी चाहिए कि रूबी उन्हें कैसे लागू करता है? जैसा कि यह पता चला है, ओनिगमो रेगेक्स इंजन की
-
उन्नत रूबी रेगुलर एक्सप्रेशन तकनीकें
मुझे लगा कि कल के रेगेक्स कंडीशनल के बारे में लेख का अनुसरण करते हुए रूबी में रेगुलर एक्सप्रेशन के साथ आप कुछ अन्य अच्छी ट्रिक्स कर सकते हैं, उन्हें देखना मजेदार होगा। रेगुलर एक्सप्रेशन के माध्यम से स्ट्रिंग्स विभाजित करना आप शायद टेक्स्ट डिलीमीटर का उपयोग करके स्ट्रिंग्स को विभाजित करने से काफी पर
-
रूबी में `self` कीवर्ड में महारत हासिल करें: सभी डेवलपर्स के लिए एक स्पष्ट गाइड
आज मैं self के बारे में बात करना चाहूंगा। यदि आप कुछ समय से रूबी प्रोग्रामिंग कर रहे हैं, तो आपने संभवतः self के विचार को आंतरिक कर लिया है। जब भी आप कोई प्रोग्राम पढ़ते या लिखते हैं, self आपके दिमाग में पीछे होता है। लेकिन कम अनुभवी रूबीस्ट्स के लिए, self हैरान करने वाला हो सकता है। यह हमेशा बदलता
-
रूबी के अंदर: इंटरप्रेटर आपके कोड को कैसे पार्स, कंपाइल और निष्पादित करता है
आप अपने टूल के बारे में जितना अधिक जानते हैं, एक डेवलपर के रूप में आप उतने ही बेहतर निर्णय लेंगे। यह अक्सर उपयोगी होता है - विशेष रूप से प्रदर्शन समस्याओं को डीबग करते समय - यह समझने के लिए कि रूबी वास्तव में आपके प्रोग्राम को चलाते समय क्या कर रहा है। इस पोस्ट में हम एक सरल प्रोग्राम की यात्रा का अ
-
रूबी के स्प्लैट ऑपरेटर में महारत हासिल करें: आसानी से सरणी बनाएं और हेरफेर करें
रूबी के बारे में मुझे जो चीजें पसंद हैं उनमें से एक इसकी विशेषताओं की गहराई है। आप एक ऑपरेटर का उपयोग कर सकते हैं, लेकिन थोड़ी खुदाई करें और आप पाएंगे कि आपने केवल इसकी क्षमताओं की सतह को खरोंचा है। विनम्र स्प्लैट ऑपरेटर (* और **) एक बेहतरीन उदाहरण है। आपने शायद स्प्लैट का उपयोग कैच-ऑल आर्गुमेंट के
-
कुशल एन्यूमरेबल ग्रुपिंग के लिए रूबी के slice_before, slice_when, और slice_after में महारत हासिल करें
आज हम slice_before, slice_when और slice_after के बारे में बात करने जा रहे हैं। ये सुपर-उपयोगी मेथड हैं जब आपको किसी सरणी या अन्य एन्यूमरेबल में आइटम को मनमाने मानदंडों के आधार पर समूहित करने की आवश्यकता होती है। आप शायद Array#slice से परिचित हैं। यह आपको इंडेक्स की एक श्रृंखला के आधार पर एक सरणी का
-
रूबी क्लास वेरिएबल और उनके स्कोप को समझें: एक स्पष्ट गाइड
रूबी के क्लास वेरिएबल भ्रमित करने वाले हैं। यहां तक कि विशेषज्ञ रूबी उपयोगकर्ता भी उन्हें सहज रूप से समझने में कठिनाई महसूस कर सकते हैं। सबसे स्पष्ट उदाहरण इनहेरिटेंस से संबंधित है: class Fruit @@kind = nil def self.kind @@kind end end class Apple < Fruit @@kind = apple end Apple.kind # => app
-
rbtrace के साथ रूबी प्रोसेस की रियल-टाइम निगरानी करें
क्या आप जानते हैं कि एक चल रहे प्रोसेस में होने वाले सभी मेथड कॉल को रियल-टाइम में लॉग करना संभव है? चल रहे प्रोसेस के अंदर निष्पादित होने के लिए कोड इंजेक्ट करने के बारे में क्या ख्याल है? आप कर सकते हैं - rbtrace जेम के जादू के माध्यम से। rbtrace जेम दो भागों के साथ आता है। पहला एक लाइब्रेरी है जि
-
लाइव लॉगिंग के साथ रूबी की आंतरिक पार्सिंग प्रक्रिया का अन्वेषण करें
मुझे लगा कि व्यावहारिक, उपयोगी सामग्री से ब्रेक लेकर आपको एक अच्छा रूबी पार्टी ट्रिक दिखाना मजेदार होगा। इससे पहले कि रूबी आपका प्रोग्राम चलाए, उसे इसे पार्स करना होगा। पार्सर एक प्रकार की स्टेट मशीन है। और एक कम-ज्ञात कमांड लाइन फ्लैग है जिसका उपयोग आप रूबी को स्टेट मशीन द्वारा किए जाने वाले हर काम
-
रूबी का उपयोग करके कमांड लाइन में महारत हासिल करें: एक व्यावहारिक गाइड
कमांड लाइन में वास्तव में महारत हासिल करने के लिए आपको दर्जनों - यदि सैकड़ों नहीं - छोटे उपयोगिता प्रोग्राम में महारत हासिल करनी होगी। इनमें से प्रत्येक चीजों को थोड़ा अलग तरीके से करता है। यह बहुत भारी पड़ सकता है। सौभाग्य से, इन एकल-उद्देश्य वाले टूल्स में से कई को रूबी जैसी सामान्य-उद्देश्य वाली
-
रूबी में फ्रैक्शन और रेशनल में महारत हासिल करें: एक व्यावहारिक गाइड
मेरा एक कबूलनामा है। मुझे फ्लोटिंग-पॉइंट नंबर से थोड़ी नफरत है। निश्चित रूप से, वे उपयोगी हैं यदि आप एक कंप्यूटर हैं, लेकिन यदि आप एक इंसान हैं तो आप इस तरह की स्थितियों में अपना सिर खुजलाते रह जाते हैं: 129.95 * 100 # => 12994.999999999998 यह न केवल गणितीय सद्भाव के विपरीत है, बल्कि यह खराब UX
-
रूबी एक्सेप्शन में TracePoint के साथ महारत हासिल करें: जटिल एरर परिदृश्यों का निदान करें
कभी-कभी यह समझना वास्तव में मुश्किल हो सकता है कि एक्सेप्शन के साथ क्या हो रहा है - विशेष रूप से बड़े ऐप्स में। कल्पना करें कि आप किसी मौजूदा प्रोजेक्ट के अंदर कुछ कोड पर काम कर रहे हैं। आप एक एक्सेप्शन उठाते हैं, फिर कुछ अजीब होता है। शायद एक्सेप्शन निगल लिया जाता है। शायद एक एनवायरनमेंट वेरिएबल बद
-
रूबी एक्सेप्शन हैंडलिंग में महारत हासिल करें: एरर होने पर ऑपरेशन को रीट्राई कैसे करें
सभी एरर घातक नहीं होते। कुछ केवल यह संकेत देते हैं कि आपको फिर से प्रयास करने की आवश्यकता है। सौभाग्य से, रूबी कुछ दिलचस्प तंत्र प्रदान करता है जो फिर से प्रयास करना आसान बनाते हैं - हालांकि उनमें से सभी स्पष्ट या प्रसिद्ध नहीं हैं। इस पोस्ट में हम इन तंत्रों पर एक नज़र डालेंगे और वे वास्तविक दुनिया
-
रूबी में नेस्टेड एक्सेप्शन में महारत हासिल करें: सटीक एरर हैंडलिंग के लिए Exception#cause का लाभ उठाएं
रूबी में एक एक्सेप्शन को रेस्क्यू करना और दूसरे प्रकार का एक्सेप्शन फिर से उठाना एक सामान्य पैटर्न है। ActionView इसका एक बहुत स्पष्ट उदाहरण है। जैसा कि मैंने TracePoint के बारे में पहले के ब्लॉग पोस्ट में उल्लेख किया था, ActionView आपके टेम्पलेट में होने वाले किसी भी एक्सेप्शन को निगल लेता है और उन