खोज…


टिप्पणियों

जेमफाइल डॉक्यूमेंटेशन

उन परियोजनाओं के लिए, जिनके बढ़ने की उम्मीद है, यह एक अच्छा विचार है जो आपकी Gemfile टिप्पणियों को Gemfile । इस तरह, बड़े सेटअपों में भी आपको पता चल जाएगा कि प्रत्येक रत्न क्या करता है, भले ही नाम स्व-व्याख्यात्मक न हो और आपने इसे 2 साल पहले जोड़ा हो।

यह आपको यह याद रखने में भी मदद कर सकता है कि आपने एक निश्चित संस्करण क्यों चुना और परिणामस्वरूप बाद में संस्करण की आवश्यकता का फिर से मूल्यांकन किया।

उदाहरण:

# temporary downgrade for TeamCity
gem 'rake', '~> 10.5.0'
# To upload invoicing information to payment provider
gem 'net-sftp'

मणि क्या है?

एक मणि एक प्लगइन या प्रोग्रामिंग भाषा रूबी के लिए एक विस्तार के बराबर है।

सटीक होने के लिए भी रेल एक रत्न से ज्यादा कुछ नहीं है। बहुत सारे रत्न रेल या अन्य रत्नों पर निर्मित होते हैं (वे उक्त मणि के आश्रित होते हैं) या स्वसंपूर्ण होते हैं।

आपकी रेल परियोजना में

Gemfile

आपके रेल प्रोजेक्ट के लिए आपके पास Gemfile नामक एक फाइल है। यहां आप उन रत्नों को जोड़ सकते हैं जिन्हें आप अपनी परियोजना में शामिल करना और उपयोग करना चाहते हैं। एक बार आपको bundler ( bundler अनुभाग देखें) का उपयोग करके मणि स्थापित करने की आवश्यकता है।

Gemfile.lock

एक बार जब आप ऐसा कर लेते हैं, तो आपका Gemfile.lock आपके नए जोड़े गए रत्नों और उनकी निर्भरता के साथ अपडेट हो जाएगा। यह फ़ाइल आपके उपयोग किए गए रत्नों को बंद कर देती है ताकि वे उस फ़ाइल में घोषित विशिष्ट संस्करण का उपयोग करें।

GEM
remote: https://rubygems.org/
specs:
devise (4.0.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0, < 5.1)
responders
warden (~> 1.2.3)

यह उदाहरण मणि deviseGemfile.lock में संस्करण 4.0.3 घोषित किया गया है, यह बताने के लिए कि किसी अन्य मशीन पर या अपने उत्पादन सर्वर पर अपनी परियोजना स्थापित करते समय कौन सा संस्करण उपयोग करने के लिए निर्दिष्ट किया गया था।

विकास

या तो एक व्यक्ति, एक समूह या एक पूरा समुदाय काम करता है और एक मणि बनाए रखता है। आमतौर पर किए गए काम कुछ issues तय होने या features को जोड़ने के बाद जारी किए जाते issues

आमतौर पर रिलीज़ सिमेंटिक वर्जन 2.0.0 सिद्धांत का पालन करते हैं।

बंडलर

bundler का उपयोग करके रत्नों को संभालने और प्रबंधित करने का सबसे आसान तरीका है। बुंडलर बोवर की तुलना में एक पैकेज मैनेजर है।

बंडल का उपयोग करने के लिए आपको पहले इसे स्थापित करना होगा।

gem install bundler

आपके द्वारा Gemfile और चलाने के बाद आपको अपने रत्न और रत्नों को जोड़ने की आवश्यकता है

bundle

अपने टर्मिनल में। यह आपके नए जोड़े गए रत्नों को आपकी परियोजना में स्थापित करता है। यदि कोई समस्या उत्पन्न होती है, तो आपको अपने टर्मिनल में एक संकेत मिलेगा।

यदि आप अधिक जानकारी में रुचि रखते हैं, तो मेरा सुझाव है कि आप डॉक्स पर एक नज़र डालें।

Gemfiles

शुरू करने के लिए, रुबाइम्स सर्वर के लिए यूआरएल के रूप में जेमफाइल्स को कम से कम एक स्रोत की आवश्यकता होती है।

bundle init चलाकर डिफ़ॉल्ट rubygems.org स्रोत के साथ एक जेफाइल बनाएं। Https का उपयोग करें ताकि सर्वर से आपका कनेक्शन SSL से सत्यापित हो जाए।

source 'https://rubygems.org'

इसके बाद, उन रत्नों की घोषणा करें, जिनकी आपको आवश्यकता है, जिसमें संस्करण संख्याएँ भी शामिल हैं।

gem 'rails', '4.2.6'
gem 'rack',  '>=1.1'
gem 'puma',  '~>3.0'

अधिकांश संस्करण विनिर्देशक, जैसे> = 1.0, स्व-व्याख्यात्मक हैं। विनिर्देशक ~> का एक विशेष अर्थ है। ~> 2.0.3> = 2.0.3 और <2.1 के समान है। ~> 2.1> = 2.1 और <3.0 के समान है। ~> 2.2.beta 2.2.beta.12 की तरह प्रीलेरेज़ संस्करणों से मेल खाएगी।

गिट रिपॉजिटरी भी मान्य रत्न स्रोत हैं, जब तक कि रेपो में एक या अधिक वैध रत्न शामिल हैं। निर्दिष्ट करें :tag :branch , या :ref साथ क्या देखना है। डिफ़ॉल्ट master शाखा है।

gem 'nokogiri', :git => 'https://github.com/sparklemotion/nokogiri', :branch => 'master'

यदि आप सीधे फाइलसिस्टम से एक अनपैक्ड रत्न का उपयोग करना चाहते हैं, तो बस पथ का विकल्प निर्धारित करें: जिसमें मणि की फाइलें हैं।

gem 'extracted_library', :path => './vendor/extracted_library'

निर्भरता को समूहों में रखा जा सकता है। (का उपयोग करते हुए समूह स्थापित होने पर ही अनदेखा किया जा सकता --without ) या एक बार (का उपयोग करके सभी आवश्यक Bundler.require )।

gem 'rails_12factor', group: :production

group :development, :test do
  gem 'byebug'
  gem 'web-console', '~> 2.0'
  gem 'spring'
  gem 'dotenv-rails'
end

आप ruby साथ जेमफाइल में रूबी के आवश्यक संस्करण को निर्दिष्ट कर सकते हैं। अगर Gemfile को एक अलग Ruby संस्करण पर लोड किया गया है, तो Bundler एक स्पष्टीकरण के साथ एक अपवाद बढ़ाएगा।

ruby '2.3.1'

Gemsets

यदि आप RVM(Ruby Version Manager) का उपयोग कर रहे हैं तो प्रत्येक प्रोजेक्ट के लिए एक gemset का उपयोग करना एक अच्छा विचार है। एक gemset सिर्फ एक कंटेनर है gemset उपयोग आप एक दूसरे से रत्नों को अलग रखने के लिए कर सकते हैं। प्रति प्रोजेक्ट एक gemset बनाना आपको अपने सभी अन्य परियोजनाओं को तोड़ने के बिना एक परियोजना के लिए रत्न (और रत्न संस्करण) को बदलने की अनुमति देता है। प्रत्येक परियोजना को केवल अपने स्वयं के रत्नों की चिंता करने की आवश्यकता है।

RVM प्रदान करता है (> = 0.1.8) एक @global gemset प्रति रूबी दुभाषिया। दिए गए माणिक के लिए आप @global gemset रत्न स्थापित करते हैं, जो आप उस माणिक के साथ मिलकर बनाते हैं। यह आपकी सभी परियोजनाओं को एक विशिष्ट रूबी दुभाषिया स्थापना के लिए एक ही स्थापित मणि साझा करने की अनुमति देने का एक अच्छा तरीका है।

रत्नों का निर्माण

मान लीजिए कि आपके पास पहले से ruby-2.3.1 स्थापित है और आपने इसे इस कमांड का उपयोग करके चुना है:

rvm use ruby-2.3.1

अब इस रूबी संस्करण के लिए रत्न बनाने के लिए:

rvm gemset create new_gemset

जहाँ new_gemset का नाम है। माणिक संस्करण के लिए उपलब्ध रत्नों की सूची देखना:

rvm gemset list

सभी रूबी संस्करणों के जवाहरात सूचीबद्ध करने के लिए:

rvm gemset list_all

सूची से एक रत्न का उपयोग करने के लिए (मान लीजिए new_gemset वह new_gemset है जिसका मैं उपयोग करना चाहता हूं):

rvm gemset use new_gemset

यदि आप किसी अन्य रूबी संस्करण में स्थानांतरित करना चाहते हैं, तो आप रत्न के साथ माणिक संस्करण भी निर्दिष्ट कर सकते हैं:

rvm use ruby-2.1.1@new_gemset

एक विशेष रूबी संस्करण के लिए एक डिफ़ॉल्ट रत्न निर्दिष्ट करने के लिए:

rvm use 2.1.1@new_gemset --default

एक रत्न से सभी स्थापित रत्नों को निकालने के लिए आप इसे खाली कर सकते हैं:

rvm gemset empty new_gemset

एक माणिक से दूसरे माणिक को कॉपी करने के लिए आप इसे कर सकते हैं:

rvm gemset copy 2.1.1@rails4 2.1.2@rails4

एक रत्न को हटाने के लिए:

rvm gemset delete new_gemset

वर्तमान रत्न नाम देखने के लिए:

rvm gemset name

वैश्विक रत्न में एक रत्न स्थापित करने के लिए:

rvm @global do gem install ...

रूबी इंस्टॉल के दौरान आरंभिक रत्न

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

~/.rvm/gemsets में काम करते हुए, rvm global.gems लिए global.gems और default.gems रूबी स्ट्रिंग के आधार पर एक पेड़-पदानुक्रम का उपयोग करके स्थापित किया जा रहा है। ree-1.8.7-p2010.02 के उदाहरण का उपयोग करते हुए, ree-1.8.7-p2010.02 निम्नलिखित फाइलों की जांच करेगा (और आयात करेगा):

~/.rvm/gemsets/ree/1.8.7/p2010.02/global.gems
~/.rvm/gemsets/ree/1.8.7/p2010.02/default.gems
~/.rvm/gemsets/ree/1.8.7/global.gems
~/.rvm/gemsets/ree/1.8.7/default.gems
~/.rvm/gemsets/ree/global.gems
~/.rvm/gemsets/ree/default.gems
~/.rvm/gemsets/global.gems
~/.rvm/gemsets/default.gems

उदाहरण के लिए, यदि आपने इन दो पंक्तियों को जोड़कर ~/.rvm/gemsets/global.gems संपादित किया है:

bundler
awesome_print

हर बार जब आप एक नया माणिक स्थापित करते हैं, तो ये दो रत्न आपके वैश्विक रत्न में स्थापित होते हैं। default.gems और global.gems फाइलें आमतौर पर rvm के अपडेट के दौरान अधिलेखित हो जाती हैं।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow