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

रूबी मानक पुस्तकालय से 5 उपयोगी उदाहरण

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

ये कक्षाएं विभिन्न प्रकार की सुविधाएं प्रदान करती हैं जैसे:

  • बेस64 एन्कोडिंग
  • प्राइम नंबर जेनरेशन
  • डीएनएस संकल्प

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

रूबी लॉगर क्लास

यदि आपको कुछ त्रुटि या डीबग संदेश लॉग करने की आवश्यकता है, तो रूबी ने आपको लकड़हारा . के साथ कवर किया है कक्षा।

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

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

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

  • डीबग
  • जानकारी
  • चेतावनी
  • त्रुटि
  • घातक

उदाहरण :

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 for Info, W for Warn)… फिर आपके पास एक टाइमस्टैम्प, और वर्तमान प्रोसेस आईडी है (जिसे आप Process.pid का उपयोग करके रूबी में प्राप्त कर सकते हैं) )।

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

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

प्राइम नंबरों के साथ काम करना

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

जब आपको Prime require की आवश्यकता हो यह प्राइम? . जोड़ देगा Fixnum . की विधि ।

उदाहरण :

require 'prime'

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

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

उदाहरण :

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

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

स्ट्रिंगियो वर्ग आपको एक स्ट्रिंग बनाने की अनुमति देता है जो 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

एन्कोडिंग और डिकोडिंग बेस64

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

ऐसा दिखता है :

"cnVieQ=="

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

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

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

require 'base64'

Base64.encode64("ruby")
"cnVieQ=="
की आवश्यकता है

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

require 'base64'

Base64.decode64("cnVieQ==")
"ruby"
की आवश्यकता है

पथों के साथ कार्य करना

पथनाम क्लास कई फाइल-सिस्टम एक्सप्लोरिंग यूटिलिटीज को लपेटता है, जैसे Dir और फ़ाइल , अधिक शक्तिशाली वर्ग में।

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

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

require 'pathname'

Pathname.glob("*").count(&:directory?)
की आवश्यकता है

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

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

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

निष्कर्ष

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

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


  1. रूबी ऑन रेल्स क्या है और यह क्यों उपयोगी है?

    रूबी ऑन रेल्स (कभी-कभी RoR) सबसे लोकप्रिय ओपन-सोर्स वेब एप्लिकेशन फ्रेमवर्क है। इसे रूबी प्रोग्रामिंग भाषा के साथ बनाया गया है। आप अनुप्रयोगों को बनाने में मदद करने के लिए रेल का उपयोग कर सकते हैं, सरल से जटिल तक, रेल के साथ आप क्या हासिल कर सकते हैं इसकी कोई सीमा नहीं है! ढांचा क्या है? फ़्रेम

  1. रूबी मानचित्र विधि का उपयोग कैसे करें (उदाहरण के साथ)

    मैप एक रूबी विधि है जिसका उपयोग आप ऐरे, हैश और रेंज के साथ कर सकते हैं। मानचित्र का मुख्य उपयोग डेटा को ट्रांसफ़ॉर्म करना है। उदाहरण के लिए : स्ट्रिंग्स की एक सरणी को देखते हुए, आप प्रत्येक स्ट्रिंग पर जा सकते हैं और प्रत्येक वर्ण को अपरकेस बना सकते हैं। या यदि आपके पास User . की सूची है ऑब्जेक्

  1. रूबी के ऐरे क्लास का उपयोग कैसे करें (उदाहरण + उपयोगी तरीके)

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