Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

5 आवश्यक रूबी स्टैंडर्ड लाइब्रेरी क्लासेस और व्यावहारिक उदाहरण खोजें

रूबी स्टैंडर्ड लाइब्रेरी मॉड्यूल्स और क्लासेस की एक श्रृंखला है जो रूबी के साथ आती हैं लेकिन भाषा का हिस्सा नहीं हैं।

ये क्लासेस विभिन्न उपयोगिताओं की पेशकश करती हैं जैसे:

  • Base64 एन्कोडिंग
  • अभाज्य संख्या जनरेशन
  • DNS रिज़ॉल्यूशन

इस लेख में मैं आपको इन 5 क्लासेस को उपयोगी उदाहरणों के साथ दिखाने जा रहा हूँ।

रूबी Logger क्लास

यदि आपको कुछ त्रुटि या डीबग संदेश लॉग करने की आवश्यकता है तो रूबी के पास Logger क्लास है जो आपकी मदद करती है।

यह क्लास लॉगिंग शुरू करने के लिए आपको जो कुछ भी चाहिए वह सब प्रदान करती है!

Logger क्लास का उपयोग करने के लिए आप बस एक Logger ऑब्जेक्ट बना सकते हैं और उसे एक आउटपुट स्ट्रीम (या फ़ाइल नाम) पैरामीटर के रूप में दे सकते हैं। फिर आप अपने संदेश को रजिस्टर करने के लिए विभिन्न लॉगिंग स्तरों का उपयोग कर सकते हैं।

लॉगिंग स्तर हैं:

  • debug
  • info
  • warn
  • error
  • fatal

उदाहरण:

 require 'logger'
logger = Logger.new(STDOUT)
logger.info 'testing...'
logger.warn 'fun with Ruby :)' 

यह निम्नलिखित आउटपुट उत्पन्न करता है:

 I, [2016-05-14T15:50:21.367590 #12148] INFO -- : testing...
W, [2016-05-14T15:50:21.846651 #12148] WARN -- : fun with Ruby 🙂 

पहला वर्ण लॉगिंग स्तर का संक्षिप्त रूप है (I Info के लिए, W Warn के लिए)… फिर आपके पास एक टाइमस्टैम्प है, और वर्तमान प्रोसेस आईडी (जिसे आप रूबी में Process.pid का उपयोग करके प्राप्त कर सकते हैं)।

अंत में, आपके पास पूर्ण लॉगिंग स्तर और वास्तविक संदेश है।

आप एक नया फॉर्मेटर प्रदान करके इस प्रारूप को बदल सकते हैं।

अभाज्य संख्याओं के साथ काम करना

शायद आपको दिन-प्रतिदिन के आधार पर अभाज्य संख्याओं से निपटने की आवश्यकता नहीं है, लेकिन यह जानना अभी भी अच्छा है (विशेषकर यदि आप प्रोग्रामिंग चुनौतियों को पसंद करते हैं) कि रूबी में Prime क्लास के माध्यम से उनके लिए अच्छा समर्थन है।

जब आप Prime की आवश्यकता करते हैं तो यह Fixnum में prime? मेथड जोड़ देगा।

उदाहरण:

 require 'prime'
5.prime? # true
11.prime? # true
20.prime? # false 

इस क्लास में एक अभाज्य संख्या जनरेटर भी शामिल है।

उदाहरण:

 Prime.take(10) # [2, 3, 5, 7, 11, 13, 17, 19, 23, 29] 

StringIO क्लास का उपयोग कैसे करें

StringIO क्लास आपको एक स्ट्रिंग बनाने की अनुमति देती है जो IO ऑब्जेक्ट की तरह व्यवहार करती है।

इसका मतलब है कि आप इस स्ट्रिंग के साथ काम कर सकते हैं जैसे कि आप किसी फ़ाइल या STDIN (स्टैंडर्ड इनपुट) से पढ़ रहे हों।

यहां एक उदाहरण है:

 require 'stringio'
io = StringIO.new
io << 'test'
io << 'code'
puts io.string # "testcode" 

कुछ बातें नोट करें:

जब आप अपने StringIO ऑब्जेक्ट में डेटा जोड़ते हैं तो यह आपके लिए स्पेस या नई लाइन नहीं जोड़ेगा, और वास्तविक स्ट्रिंग प्राप्त करने के लिए आपको string मेथड को कॉल करना होगा।

इसके अलावा आप अलग-अलग वर्णों तक पहुंचने के लिए सरणी इंडेक्सिंग का उपयोग नहीं कर सकते, जैसे आप एक नियमित स्ट्रिंग के साथ कर सकते हैं।

यह कब उपयोगी है?

खैर, कभी-कभी आप किसी फ़ाइल या किसी अन्य IO ऑब्जेक्ट को किसी अन्य ऑब्जेक्ट से बदलना चाह सकते हैं जिस पर आपका अधिक नियंत्रण हो। उदाहरण के लिए, एक परीक्षण वातावरण में आप STDOUT को StringIO ऑब्जेक्ट से बदल सकते हैं।

आप यहां रेल्स से एक वास्तविक दुनिया का उदाहरण देख सकते हैं: https://github.com/rails/rails/blob/52ce6ece8c8f74064bb64e0a0b1ddd83092718e1/activesupport/test/logger_test.rb

Base64 एन्कोडिंग और डिकोडिंग

Base64 एक एन्कोडिंग प्रारूप है जो इंटरनेट पर आम है।

यह ऐसा दिखता है:

 "cnVieQ==" 

यह उपयोगी क्यों है?

URLs में अनुमत वर्णों का एक प्रतिबंधित सेट होता है, कभी-कभी आप उनको शामिल करना चाहते हैं और Base64 इसे संभव बनाता है।

एन्कोड करने का तरीका यहां दिया गया है:

 require 'base64'
Base64.encode64("ruby") # "cnVieQ==" 

डिकोड करने का तरीका यहां दिया गया है:

 require 'base64'
Base64.decode64("cnVieQ==") # "ruby" 

पथ के साथ काम करना

Pathname क्लास कई फाइल-सिस्टम एक्सप्लोरिंग उपयोगिताओं को लपेटती है, जैसे Dir और File, एक बहुत अधिक शक्तिशाली क्लास में।

जबकि मेथड नाम समान हैं, वे स्ट्रिंग्स या सरणियों के बजाय Pathname ऑब्जेक्ट्स लौटाते हैं। और इसका मतलब है कि आप सभी फाइल-संबंधित मेथड्स के साथ परिणामों पर काम करना जारी रख सकते हैं।

यह एक बेहतरीन उदाहरण है:

 require 'pathname'
Pathname.glob("*").count(&:directory?) 

यदि आपने इसे Dir के साथ करने की कोशिश की होती, तो आपको इस कोड का उपयोग करना पड़ता, जो उतना सुंदर नहीं है।

 Dir.glob("*").count { |d| File.directory?(d) } 

अगली बार जब आपको फाइल-सिस्टम से संबंधित कार्य करने की आवश्यकता हो तो इसे आज़माएं 🙂

निष्कर्ष

मुझे आशा है कि आपको ये उदाहरण उपयोगी लगे! स्टैंडर्ड लाइब्रेरी का थोड़ा और पता लगाना सुनिश्चित करें ताकि आप सीख सकें कि यह आपके लिए क्या कर सकता है।

अगर आपको यह पोस्ट पसंद आई तो इसे शेयर करना न भूलें 🙂


  1. Ruby on Rails में महारत: इस सिद्ध फ्रेमवर्क के साथ शक्तिशाली वेब ऐप्स तेजी से बनाएं Ruby on Rails में महारत: इस सिद्ध फ्रेमवर्क के साथ शक्तिशाली वेब ऐप्स तेजी से बनाएं

    Ruby on Rails (कभी-कभी RoR) सबसे लोकप्रिय ओपन-सोर्स वेब एप्लिकेशन फ्रेमवर्क है। यह Ruby प्रोग्रामिंग भाषा के साथ बनाया गया है। आप सिंपल से लेकर कॉम्प्लेक्स तक एप्लिकेशन बनाने में मदद के लिए Rails का उपयोग कर सकते हैं, Rails के साथ आप जो हासिल कर सकते हैं उसकी कोई सीमा नहीं है! फ्रेमवर्क क्या है? फ्र

  1. Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के Map मेथड में महारत: उदाहरणों के साथ एक व्यावहारिक गाइड

    Map एक Ruby मेथड है जिसका उपयोग आप Arrays, Hashes और Ranges के साथ कर सकते हैं। map का मुख्य उपयोग डेटा को ट्रांसफॉर्म करना है। उदाहरण के लिए: स्ट्रिंग्स की एक सरणी दिए जाने पर, आप हर स्ट्रिंग पर जा सकते हैं और हर कैरेक्टर को UPPERCASE बना सकते हैं। या यदि आपके पास User ऑब्जेक्ट्स की एक सूची है... आ

  1. रूबी एरे में महारत: व्यावहारिक उदाहरण और आवश्यक मेथड्स रूबी एरे में महारत: व्यावहारिक उदाहरण और आवश्यक मेथड्स

    एरे क्या है? एक एरे रूबी में एक बिल्ट-इन क्लास है, जो शून्य या अधिक आइटम्स की सूची रखती है, और इसमें ऐसे मेथड्स शामिल हैं जो आपको इन सभी आइटम्स को आसानी से जोड़ने, एक्सेस करने और लूप करने में मदद करते हैं। यह उपयोगी है, क्योंकि यदि एरे मौजूद नहीं होते तो आपको कई वेरिएबल्स का उपयोग करना पड़ता। उदाहरण