यद्यपि रत्नों के निर्माण पर लेख पहले ही हैबे पर छोड़ दिया गया है, वे या तो पुरानी या अधूरी जानकारी रखते हैं।
तो आपको वास्तव में अपने रत्नों को बनाने, विकसित करने और प्रकाशित करने की आवश्यकता कैसे है?
आधुनिक दृष्टिकोण
बुंडलर को अन्य उपकरणों जैसे गिट,
यार्ड और
आरएसईपीके -2 के साथ संयोजन के रूप
में उपयोग करना है।
एक मूल संरचना बनाना
तो, एक नया रत्न बनाने के लिए, बस कमांड चलाएं
bundle gem YOUR-GEM-NAME
स्वाभाविक रूप से, इस कमांड को निष्पादित करने से पहले, बंडलर
gem install bundler
(
gem install bundler
) पहले से ही स्थापित होना चाहिए।
उसके बाद, आपको
रत्न- निर्माण के लिए तैयार किए गए आदेशों के साथ अपने नए रत्न की मूल संरचना को रत्न के निर्माण के लिए तैयार कर दिया जाएगा, इसे स्थापित करना और इसे माणिकों के लिए प्रकाशित करना होगा:
cd YOUR-GEM-NAME rake -T rake build
यह ध्यान रखना महत्वपूर्ण है कि स्रोत पुस्तकालय कोड को वैश्विक नाम स्थान पर नहीं रखना चाहिए। कृपया अपने सभी वर्गों को एक वर्ग या मॉड्यूल के अंदर लिबर /
आपके GEM-NAME सबडायरेक्ट में Bundler द्वारा सुझाए गए नाम के साथ रखें, जिनमें से वह lib / Your
-GEM-NAME .rb फ़ाइल से आपके पास है। ऑटोलैड का उपयोग न करने की कोशिश करें, क्योंकि यह सुविधा रूबी 2.0 के लिए पदावनत है।
यदि संभव हो तो, सभी दस्तावेज़ीकरण फ़ाइलों को मार्कडाउन मार्कअप (अधिमानतः README.md फ़ाइल वाले) का उपयोग करना चाहिए।
कोड प्रलेखन
एक आधुनिक कोड प्रलेखन उपकरण GitHub सिंटैक्स का उपयोग करते हुए कोड हाइलाइटिंग का समर्थन करने के लिए रेडकारपेट मॉड्यूल का उपयोग करते हुए मार्कडाउन मोड में YARD है। इस मामले में, आप स्वचालित रूप से rubydoc.info (
उदाहरण ) पर प्रलेखन का प्रकाशन प्राप्त करते हैं।
इसे जोड़ना काफी सरल है:
- रत्नों में विकास का समय निर्भरता जोड़ें:
s.add_development_dependency "redcarpet", "~> 1.17" s.add_development_dependency "yard", "~> 0.7.5"
यदि हम रूबी संस्करण 1.8 का उपयोग करते हैं, तो रिपर रत्न का उपयोग करना भी उचित है, जो यार्ड के लिए उपयोगी कार्यक्षमता जोड़ देगा। इसे जेमफाइल के माध्यम से जोड़ना बेहतर है:
gem "ripper", :platforms => :ruby_18, :group => :development
- रत्न स्थापित करें
bundle install
- हम निम्न सामग्रियों के साथ .ardopts फ़ाइल बनाकर YARD को कॉन्फ़िगर करते हैं:
-मार्कअप मार्कडाउन
-मार्कअप-प्रदाता रेडकारपेट
-चारसेट utf-8
--readme README.md
-
README.md
लाइसेंस
यहां, एक एकल-पंक्ति हाइफ़न के बाद, हम उन फ़ाइलों की सूची दर्शाते हैं जिन्हें प्रलेखन (आमतौर पर रीडमी और लाइसेंस) में शामिल किया जाना चाहिए।
- और Rakefile में प्रलेखन उत्पन्न करने के लिए रेक यार्ड कार्य जोड़ें:
require 'yard' YARD::Rake::YardocTask.new
अब, रेक यार्ड कमांड के साथ, हमें डॉक डायरेक्टरी में लाइब्रेरी के लिए पूर्ण प्रलेखन मिलता है।
वैसे, डॉक्स / .ardoc / और Gemfile.lock को .gitignore में जोड़ना न भूलें।
चश्मा लिखना शुरू करें
व्यक्तिगत रूप से, मैं
आरआर के साथ संयोजन के रूप में चश्मे के लिए RSpec 2 का उपयोग करना पसंद करता हूं। जवाहरात में उपयुक्त निर्भरता जोड़ें:
s.add_development_dependency "rspec-core", "~> 2.0" s.add_development_dependency "rspec-expectations", "~> 2.0" s.add_development_dependency "rr", "~> 1.0"
रत्न स्थापित करें और बुनियादी RSpec 2 फाइलें बनाएं
bundle install bundle exec rspec --init
Rakefile में रेक स्पेक कार्य जोड़ें:
require 'rspec/core/rake_task' RSpec::Core::RakeTask.new
और कृपया spec / spec_helper.rb में डिफ़ॉल्ट RR का उपयोग करें:
config.mock_with :rr
यही है, अब आप चश्मा और कोड लिख सकते हैं।
निष्पादन योग्य के बारे में थोड़ा सा
आपके द्वारा अपने रत्न की बिन निर्देशिका में रखी गई फाइलें, जब मणि स्थापित करते हैं, लक्ष्य ऑपरेटिंग सिस्टम की निष्पादन योग्य फ़ाइलों के रूप में स्थापित की जाती हैं।
एक छोटी सी बारीकियों है: विभिन्न ऑपरेटिंग सिस्टमों में, यह इंस्टॉलेशन अलग-अलग तरीकों से होता है, और कभी-कभी आपकी निष्पादन योग्य फाइलें आपके मणि के बिन उपनिर्देशिका से बिल्कुल भी लॉन्च नहीं होती हैं, जिसे आप गलती से ट्यून कर सकते हैं।
इस संबंध में, एक निष्पादन योग्य फ़ाइल बनाते समय सबसे अच्छा अभ्यास पुस्तकालय में सभी तर्क को स्थानांतरित करना है ताकि आपका मणि-निष्पादित बाइनरी कुछ इस तरह दिखे:
require 'rubygems'
इसके अलावा, इस दृष्टिकोण का मतलब है कि अधिकांश तर्क चश्मा के साथ कवर किए जा सकते हैं।
संस्करण नियंत्रण
सामान्य नियम यह है कि मणि संस्करण संख्या उत्पन्न करते समय Git को एक रिपॉजिटरी और
सिमेंटिक संस्करण के रूप में उपयोग करें। रेक रिलीज स्वचालित रूप से रिपॉजिटरी में आवश्यक टैग बनाएगा और माणिक को रगड़ें प्रकाशित करेगा।
रत्नों के गलत संस्करणों को हटाना
कभी-कभी एक कार्य एक विशिष्ट संस्करण की समस्याओं (कोड या गलत संस्करण में त्रुटियां) के कारण माणिक के साथ मणि के एक संस्करण को हटाने के लिए उठता है। यह कार्य कमांड का उपयोग करके किया जाता है
gem yank gemname -v version
यह आदेश डिफ़ॉल्ट रूप से रूबीज के साथ नहीं आता है, इसलिए आपको इसका उपयोग करने के लिए जौहरी रत्न को स्थापित करने की आवश्यकता है।
gem install jeweler