Gem Structure
Files और gemspec
Gem Structure, CoddyKit पर Ruby Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Ruby Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Ruby Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
जेम क्या है
जेम एक पैकेज की गई Ruby लाइब्रेरी या एप्लिकेशन है, जिसे RubyGems के माध्यम से स्थापित, संस्करणबद्ध और साझा किया जा सकता है। आपके द्वारा उपयोग किए जाने वाले लगभग हर Ruby टूल को जेम के रूप में उपलब्ध कराया जाता है।
- जेम में कोड, मेटाडेटा और निर्भरताएँ एक साथ होती हैं।
- मेटाडेटा एक जेमस्पेक फ़ाइल में रहता है।
bundlerऔरgemजैसे टूल जेम को प्रबंधित करते हैं।
ढाँचा बनाना
शुरुआत करने का सबसे तेज़ तरीका bundle gem mygem है। यह मानक निर्देशिका संरचना, जेमस्पेक, परीक्षण फ़ोल्डर, README और लाइसेंस तैयार कर देता है। इसके बाद आप इसमें कोड भरते हैं।
मानक संरचना
mygem नाम का एक सामान्य जेम इस तरह दिखता है:
lib/mygem.rbप्रवेश फ़ाइल है।lib/mygem/में अतिरिक्त स्रोत फ़ाइलें होती हैं।lib/mygem/version.rbमें संस्करण स्थिरांक होता है।mygem.gemspecमें मेटाडेटा होता है।test/याspec/में परीक्षण होते हैं।README.mdऔर एक लाइसेंस फ़ाइल होती है।
प्रवेश फ़ाइल
जब कोई व्यक्ति require 'mygem' चलाता है, तब lib/mygem.rb लोड होती है। इसमें आम तौर पर संस्करण फ़ाइल और लाइब्रेरी के बाकी हिस्सों की आवश्यकता बताई जाती है और शीर्ष-स्तरीय मॉड्यूल परिभाषित किया जाता है।
module Mygem
def self.greet(name)
"Hello, " + name
end
end
puts Mygem.greet("world")संस्करण फ़ाइल
संस्करण को अपनी फ़ाइल में रखने से जेमस्पेक और कोड, दोनों उसे पढ़ सकते हैं। प्रचलित तरीका है कि जेम के मॉड्यूल के अंदर VERSION स्थिरांक रखा जाए।
module Mygem
VERSION = "0.1.0"
end
puts "Current version: " + Mygem::VERSIONजेमस्पेक क्या है
जेमस्पेक एक Ruby फ़ाइल है, जो जेम का वर्णन करती है: उसका नाम, संस्करण, लेखक, सारांश, फ़ाइलें और निर्भरताएँ। RubyGems पैकेज बनाने और प्रकाशित करने के लिए इसे पढ़ता है।
यह सामान्य Ruby कोड होता है, इसलिए आप मानों की गणना कर सकते हैं, लेकिन इसे सरल और घोषणात्मक रखें।
न्यूनतम जेमस्पेक
मुख्य फ़ील्ड नाम, संस्करण, लेखक, सारांश और फ़ाइलें हैं। इसका प्रारूप यहाँ दिया गया है; यह साधारण Ruby में लिखा गया है और आप इसे mygem.gemspec में रख सकते हैं।
require "ostruct"
spec = OpenStruct.new
spec.name = "mygem"
spec.version = "0.1.0"
spec.authors = ["Your Name"]
spec.summary = "A tiny example gem"
puts spec.name + " " + spec.versionफ़ाइलों की सूची बनाना
जेमस्पेक में यह घोषित होना चाहिए कि जेम में कौन-सी फ़ाइलें शामिल की जाएँगी। कई जेमस्पेक, ताकि कोई फ़ाइल छूट न जाए, ट्रैक की गई फ़ाइलों की सूची प्राप्त करने के लिए git से पूछते हैं:
spec.files = Dir['lib/**/*.rb'] + ['README.md']
केवल सूची में शामिल फ़ाइलों को ही पैकेज किया जाता है, इसलिए किसी फ़ाइल का छूट जाना स्थापना को विफल कर देगा।
निर्भरताएँ घोषित करना
जेमस्पेक में दो प्रकार की निर्भरताएँ रखी जाती हैं:
- रनटाइम की उन आवश्यकताओं के लिए
add_dependency, जिन्हें उपयोगकर्ताओं को स्थापित करना पड़ता है। - विकास के दौरान ही उपयोग किए जाने वाले टूल, जैसे परीक्षण ढाँचे, के लिए
add_development_dependency।
संगत बने रहने के लिए '~> 1.2' जैसे संस्करण प्रतिबंधों का उपयोग करें।
आवश्यक Ruby संस्करण
spec.required_ruby_version सेट करें, ताकि बहुत पुराने Ruby संस्करण का उपयोग करने वाले लोगों को उलझन भरी क्रैश के बजाय स्पष्ट त्रुटि मिले। बेहतर तरीके से तैयार किए गए जेम के लिए homepage, license और metadata भी भरें।
required = ">= 3.0.0"
current = RUBY_VERSION
puts "Requires Ruby " + required
puts "Running Ruby " + currentजेम बनाना
जेमस्पेक तैयार हो जाने पर gem build mygem.gemspec एक .gem फ़ाइल बनाता है। प्रकाशित करने से पहले परीक्षण के लिए आप इसे gem install ./mygem-0.1.0.gem से स्थानीय रूप से स्थापित कर सकते हैं।
त्वरित जाँच
जेम की संरचना के बारे में अपनी समझ की जाँच करें।
पुनरावलोकन: जेम की संरचना
आपने सीखा कि जेम को कैसे व्यवस्थित किया जाता है:
bundle gemढाँचा तैयार करता है।lib/mygem.rbप्रवेश बिंदु है।- संस्करण अपनी अलग फ़ाइल में रखा जाता है।
- जेमस्पेक में मेटाडेटा, फ़ाइलें और निर्भरताएँ होती हैं।
gem buildइसे पैकेज करता है।
अब हम जेम के अंदर वास्तविक कोड को व्यवस्थित करेंगे।
एआई शिक्षक के साथ Ruby सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 29
- पाठ
- 109
अक्सर पूछे जाने वाले प्रश्न
क्या “Gem Structure” पाठ निःशुल्क है?
हाँ — Ruby Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Gem Structure” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Ruby Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Gem Structure” में मैं क्या सीखूँगा?
Files और gemspec आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Ruby Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Ruby Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Ruby Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Gem Structure” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Ruby Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Ruby Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।