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

रूबी में एनवायरनमेंट वेरिएबल्स मास्टर करें: एक व्यावहारिक मार्गदर्शिका

एक एनवायरनमेंट वेरिएबल एक कुंजी/मान जोड़ी है, यह इस तरह दिखती है:

 KEY=VALUE 

हम इन वेरिएबल्स का उपयोग अपने कंप्यूटर में सभी प्रोग्राम्स के बीच कॉन्फ़िगरेशन विकल्प साझा करने के लिए करते हैं।

यही कारण है कि यह सीखना महत्वपूर्ण है कि वे कैसे काम करते हैं और ENV विशेष वेरिएबल का उपयोग करके अपने रूबी प्रोग्राम्स से उन्हें कैसे एक्सेस करें।

एनवायरनमेंट वेरिएबल्स के उदाहरण:

  • अपने डिफ़ॉल्ट एडिटर को कॉन्फ़िगर करना
  • रूबी को बताना कि जेम्स कहां ढूंढें (GEM_PATH / GEM_HOME)
  • API कुंजियों को अपने एप्लिकेशन में पास करना, बिना उन्हें सोर्स कंट्रोल (git) में कमिट किए
  • परिभाषित करना कि आपका ऑपरेटिंग सिस्टम बाइनरी फ़ाइलों (.exe विंडोज में) के लिए कहां देखे
  • रेल्स को टेस्ट/डेवलपमेंट/प्रोडक्शन मोड में शुरू करना

आप लिनक्स/मैक में env कमांड और विंडोज में set कमांड के साथ अपने सभी एनवायरनमेंट वेरिएबल्स की सूची पा सकते हैं।

उदाहरण:

 PWD=/home/jesus SHELL=/usr/bin/zsh RUBY_ENGINE=ruby RUBY_VERSION=2.6.0 GEM_ROOT=/opt/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0 # ... 

सूची काफी लंबी हो सकती है, लेकिन आपको इसे याद रखने की आवश्यकता नहीं है।

आप gem env कमांड के साथ सभी जेम-विशिष्ट वेरिएबल्स और कॉन्फ़िगरेशन भी प्रिंट कर सकते हैं।

अब:

यदि आप रूबी से इन एनवायरनमेंट वेरिएबल्स को एक्सेस करना चाहते हैं तो एक विशेष ऑब्जेक्ट है जिसका आप उपयोग कर सकते हैं।

आइए खोजें कि यह कैसे काम करता है!

रूबी में एनवायरनमेंट वेरिएबल्स का उपयोग करना

रूबी में यह ENV ऑब्जेक्ट है जो हैश की तरह व्यवहार करता है और आपको उन सभी एनवायरनमेंट वेरिएबल्स तक पहुंच देता है जो आपके लिए उपलब्ध हैं।

यहां कुछ उदाहरण हैं...

आप यह पता लगा सकते हैं कि आपके पास कितनी कुंजियां हैं:

 ENV.size # 48 

उनकी सूची प्राप्त करें:

 ENV.keys 

और विशिष्ट कुंजियों तक पहुंचें:

 ENV["GEM_HOME"] # "/home/jesus/.gem/ruby/2.6.0" 

आप map और select जैसे मेथड्स भी उपयोग कर सकते हैं:

 ENV.select { |k,v| k.size < 4 } 

लेकिन आप रूबी के बाहर इन एनवायरनमेंट वेरिएबल्स को कैसे सेट करते हैं?

एनवायरनमेंट वेरिएबल्स कैसे सेट करें

आप एक बार के उपयोग के लिए एनवायरनमेंट वेरिएबल सेट कर सकते हैं।

इस तरह:

 API_KEY=1 ruby -e 'p ENV["API_KEY"]' 

इसे टर्मिनल में उपयोग करें, irb के बाहर, फिर रूबी के पास इस API_KEY मान तक पहुंच होगी।

यह API कुंजियों के लिए उपयोगी है, लेकिन रेल्स मोड सेट करने के लिए भी।

उदाहरण:

 RAILS_ENV=production rails console 

याद रखें:

यह आपके द्वारा अभी लॉन्च की जा रही प्रक्रिया के लिए इस विशिष्ट एनवायरनमेंट वेरिएबल को सेट करता है।

मतलब अगर मैं API_KEY=1 <command> करता हूं...

यह केवल उस कमांड के लिए काम करेगा!

यदि आप चाहते हैं कि यह वेरिएबल आपके वर्तमान टर्मिनल सत्र से लॉन्च की गई अन्य सभी कमांड्स द्वारा उपयोग किया जाए।

यह करें:

 export API_KEY=1 

अब यदि आप करते हैं:

 ruby -e 'p ENV["API_KEY"]' 

आपको 1 मिलेगा, बिना प्रीफिक्स्ड वेरिएबल के भी।

चेतावनी:

अपने रूबी एप्लिकेशन के भीतर कॉन्फ़िगरेशन के लिए ENV का उपयोग न करें, यह इसका उद्देश्य नहीं है। ENV केवल रूबी के बाहर से आने वाले बाहरी कॉन्फ़िगरेशन को पढ़ने के लिए है।

आंतरिक कॉन्फ़िगरेशन विकल्पों के लिए dry-configurable जैसे जेम का प्रयास करें।

एनवायरनमेंट वेरिएबल्स के महत्वपूर्ण गुण

आप इन गुणों को उपयोगी पा सकते हैं क्योंकि वे (संभावित रूप से अप्रत्याशित) व्यवहार की व्याख्या करते हैं।

  • स्नैपशॉटिंग, एनवायरनमेंट वेरिएबल्स तब सेट होते हैं जब आप एक प्रोग्राम लॉन्च करते हैं और बाहरी परिवर्तनों से प्रभावित नहीं होते
  • बंद वातावरण, एक प्रक्रिया के अंदर वेरिएबल्स बदलना (आपका रूबी प्रोग्राम एक प्रक्रिया है) प्रक्रिया के बाहर एनवायरनमेंट वेरिएबल्स को नहीं बदलता
  • एनवायरनमेंट वेरिएबल्स स्थायी नहीं हैं, जब आप अपने कंप्यूटर को रीबूट करते हैं, या यहां तक कि जब आप अपना टर्मिनल बंद करते हैं, तो एनवायरनमेंट वेरिएबल्स में परिवर्तन खो जाते हैं (भले ही आप export लिनक्स + मैक / set विंडोज में उपयोग करें)

इन्हें ध्यान में रखें!

रेल्स क्रेडेंशियल्स

रेल्स 5.2 ने API कुंजियों को प्रबंधित करने में आपकी सहायता के लिए एक नई प्रणाली पेश की।

यह क्रेडेंशियल्स को सीधे config/credentials.yml.enc में सहेजकर काम करता है, यह एक एन्क्रिप्टेड फ़ाइल है जिसे आप केवल तभी पढ़ सकते हैं जब आपके पास master.key फ़ाइल हो।

विचार यह है कि आप केवल credentials.yml.enc कमिट करें और कुंजी को निजी रखें।

नए क्रेडेंशियल्स कैसे जोड़ें?

खैर, आप .enc फ़ाइल को सीधे संपादित नहीं कर सकते।

इस कमांड का उपयोग करें:

 bin/rails credentials:edit 

यह एक YAML फ़ाइल है, सुनिश्चित करें कि इसे सही ढंग से फॉर्मेट किया गया है।

अब:

आप अपने रेल्स ऐप से क्रेडेंशियल्स को इस तरह पढ़ सकते हैं...

 Rails.application.credentials.github_api_key 

वीडियो ट्यूटोरियल देखें

सारांश

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

रूबी में एनवायरनमेंट वेरिएबल्स मास्टर करें: एक व्यावहारिक मार्गदर्शिका

कृपया इस लेख को अपने दोस्तों के साथ साझा करें ताकि अधिक लोग इसे ढूंढ सकें 🙂

पढ़ने के लिए धन्यवाद!


  1. Ruby में Alias कीवर्ड का उपयोग करके मेथड एलियास बनाना Ruby में Alias कीवर्ड का उपयोग करके मेथड एलियास बनाना

    Ruby में किसी मेथड को वैकल्पिक नाम देने के दो तरीके हैं: alias (कीवर्ड) alias_method चूंकि ये दोनों थोड़े अलग तरीके से एक ही काम करते हैं, इसलिए यह विषय भ्रमित करने वाला हो सकता है। यह छवि अंतरों का सारांश है: आइए इन अंतरों को विस्तार से समझते हैं ताकि आपको ठोस समझ मिल सके! alias कीवर्ड पहला है a

  1. रूबी स्ट्रक्ट्स और OpenStruct में महारत: कुशल वैल्यू ऑब्जेक्ट्स रूबी स्ट्रक्ट्स और OpenStruct में महारत: कुशल वैल्यू ऑब्जेक्ट्स

    रूबी में स्ट्रक्ट क्या है? एक स्ट्रक्ट एक बिल्ट-इन रूबी क्लास है, इसका उपयोग वैल्यू ऑब्जेक्ट्स उत्पन्न करने वाली नई क्लासेस बनाने के लिए किया जाता है। एक वैल्यू ऑब्जेक्ट संबंधित विशेषताओं को एक साथ संग्रहीत करने के लिए उपयोग किया जाता है। यहां एक उदाहरण है: दो निर्देशांकों (x और y) के साथ एक Point।

  1. Windows 10 पर्यावरण चर सेट करें: चरण-दर-चरण मार्गदर्शिका Windows 10 पर्यावरण चर सेट करें: चरण-दर-चरण मार्गदर्शिका

    पर्यावरण चर आपके PC पर चल रहे प्रोग्राम्स को कॉन्फ़िगर करने के लिए उपयोग किए जाने वाले वैश्विक मान हैं। हालांकि वे तकनीकी लगते हैं, वे वास्तव में अलग-अलग ऐप्स के लिए हुक करने के लिए एक साझा कॉन्फ़िगरेशन स्टोर हैं। पर्यावरण चर व्यक्तिगत उपयोगकर्ता खातों से जुड़े होते हैं, इसलिए अलग-अलग उपयोगकर्ताओं