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

एक RubyGem की पारी

चारों ओर के बच्चों को इकट्ठा करो, और दादाजी को उन पुराने दिनों के बारे में बताने दो जब जीवन कठिन था, और रत्न स्थापित करना एक सिरदर्द-उत्प्रेरण, बाल खींचने, दांत पीसने की परीक्षा थी।

वापस जब मैं रूबी में शुरू कर रहा था, वहां कोई बंडलर नहीं था और रत्नों को कठिन तरीके से स्थापित किया जाना था। रेल में, इसका मतलब rake gems:install . चलाना था एक लाख बार, रास्ते में होने वाली बग को ठीक करना, जब तक कि कमांड बिना किसी त्रुटि के पारित न हो जाए। आज हम पुराने जमाने की तरह एक रत्न बनाने जा रहे हैं, यह देखने के बाद कि रत्न क्या हैं और वे कैसे काम करते हैं।

रत्न, वे क्या हैं?

RubyGems अन्य लोगों द्वारा लिखी गई कार्यक्षमता के साथ अपने स्वयं के कोड का विस्तार करने का एक आसान तरीका है। उदाहरण के लिए, अपना स्वयं का प्रमाणीकरण/प्राधिकरण कोड लिखने के बजाय, आप डेविस का उपयोग कर सकते हैं, या यदि आप अपलोड की गई छवियों को फिर से आकार देना चाहते हैं तो आप कैरियरवेव का उपयोग कर सकते हैं। यह आपको पुन:प्रयोज्य कोड लिखने की अनुमति देता है जिसे आप अन्य लोगों के साथ साझा कर सकते हैं।

लेकिन वे कैसे काम करते हैं?

अपने सबसे बुनियादी रूप में, एक रत्न एक ज़िप्ड-अप निर्देशिका से अधिक कुछ नहीं है जिसमें कोड और एक <name>.gemspec होता है। फ़ाइल। यह .gemspec फ़ाइल में रत्न के बारे में मेटाडेटा होता है जैसे कि उसका नाम, कौन सी फाइलें लोड करनी हैं और उसकी निर्भरताएँ।

gem install या bundle कमांड ज़िप फ़ाइल को स्रोत से डाउनलोड करता है और इसे आपकी हार्ड ड्राइव पर निकालता है। आप bundle info <gem name> . चलाकर पता लगा सकते हैं कि रत्न कहाँ स्थित है या सीधे bundle open <gem name> . चलाकर मणि निर्देशिका खोलकर ।

अपने आवेदन में रत्न लोड करने के लिए, Rubygems बंदर-पैच require Kernel . में कार्य करता है कक्षा। यह पहले डिस्क से फ़ाइल को पढ़ने का प्रयास करता है और यदि वह काम नहीं करता है, तो यह आपके सिस्टम के प्रत्येक रत्न में फ़ाइल को हल करने का प्रयास करता है। एक बार जब यह फ़ाइल को मणि में पाता है तो यह मणि को लोड पथ में जोड़कर "सक्रिय" करता है।

यदि आप बंडलर का उपयोग करते हैं, तो यह प्रत्येक विशिष्ट रत्न को setup . के दौरान लोड पथ में जोड़ता है बुलाना। यह रूबीगेम्स को रास्तों को हल करने की कोशिश करने की परेशानी से बचाता है। यह रूबी को Gemfile(.lock) में चयनित रत्न के भिन्न संस्करण को लोड करने से भी रोकता है।

मैं एक कैसे बना सकता हूं?

अपना खुद का रत्न बनाने का सबसे आसान तरीका है बंडलर का उपयोग करके एक मणि मचान बनाना। इसमें एक उचित निर्देशिका संरचना, लाइसेंस, आचार संहिता और रत्न के लिए एक परीक्षण वातावरण शामिल है।

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

mkdir howdy
cd howdy

इस निर्देशिका में, हम एक lib बनाएंगे फ़ोल्डर जिसमें कोड और एक howdy.gemspec . होगा फ़ाइल जिसमें मेटाडेटा होगा। यह कुछ इस तरह दिखना चाहिए:

tree
.
├── howdy.gemspec
└── lib
    └── howdy.rb

हमारे हाउडी रत्न में निम्न कोड है:

lib/howdy.rb

class Howdy
  def greet
    "howdy!"
  end
end

एक न्यूनतर howdy.gemspec फ़ाइल में संस्करण, लेखक, आदि के बारे में जानकारी होती है। यह उन फाइलों को भी निर्दिष्ट करता है जिन्हें रत्न बनाते समय रखना चाहिए। यह मणि के उपयोगकर्ताओं को अनावश्यक फ़ाइलें जैसे परीक्षण और अन्य फ़ाइलें डाउनलोड करने से रोकता है जिनकी मणि कोड चलाने के लिए आवश्यकता नहीं होती है।

Gem::Specification.new do |spec|
  spec.name          = "howdy"
  spec.version       = "0.0.1"
  spec.authors       = ["Robert Beekman"]
  spec.email         = ["robert@example.com"]
 
  spec.summary       = %(Greets the user)
  spec.description   = %(Howdy is a gem that greets the user when called)
  spec.license       = "MIT"
 
  spec.files         = ["lib/howdy.rb"]
end

रत्न बनाने के लिए हम gem build howdy.gemspec . का उपयोग कर सकते हैं आज्ञा। यह एक howdy-0.0.1.gem . उत्पन्न करता है फ़ाइल जिसमें आपका कोड है। अन्य लोगों को रत्न उपलब्ध कराने के लिए, आप इसे gem publish के साथ rubygems.org पर प्रकाशित कर सकते हैं आदेश।

रिकैप

ये एक बहुत ही बुनियादी रत्न बनाने और प्रकाशित करने के लिए आवश्यक कदम हैं। हमें उम्मीद है कि आपने हमें रत्नों के पुरातत्व में गोता लगाने और उन्हें बनाने के पुराने स्कूल के तरीके का आनंद लिया। जैसा कि पहले उल्लेख किया गया था, यह शैक्षिक उद्देश्यों के लिए था; हम आज की दुनिया में एक रत्न पाड़ बनाने के लिए बंडलर का उपयोग करने की सलाह देते हैं।

शांति से बाहर, युवाओं! यदि आपके पास कोई विचार, प्रश्न या टिप्पणी है, तो कृपया बेझिझक हमें बताएं।


  1. रूबीस्ट्स गाइड टू एनवायरनमेंट वेरिएबल्स

    यदि आप विकास और उत्पादन में वेब ऐप्स को प्रभावी ढंग से प्रबंधित करने में सक्षम होना चाहते हैं, तो आपको पर्यावरण चर को समझना होगा। यह हमेशा मामला नहीं था। कुछ साल पहले, शायद ही कोई अपने रेल ऐप्स को पर्यावरण चर के साथ कॉन्फ़िगर कर रहा था। लेकिन फिर हेरोकू हुआ। हरोकू ने डेवलपर्स को 12-कारक ऐप दृष्टिक

  1. अपने परीक्षण सूट को बेहतर बनाने के लिए वीसीआर रत्न का उपयोग कैसे करें

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

  1. रूबी में स्टेट मशीन बनाने के लिए AASM रत्न का उपयोग कैसे करें

    आज आप स्टेट मशीनों के बारे में जानेंगे कि वे कैसे काम करती हैं और AASM रत्न के साथ अपने रूबी प्रोजेक्ट्स में उनका उपयोग कैसे करें। अब : ट्रैफिक लाइट की कल्पना करें… यह लाल, हरा या पीला हो सकता है। जब यह रंग बदलता है, तो अगला रंग वर्तमान . पर आधारित है एक। मान लें कि यह एक ऐसा प्रकार है जो अंध