खोज…


माणिक रत्न स्थापित करना

यह मार्गदर्शिका मानती है कि आपके पास पहले से ही रूबी स्थापित है। यदि आप रूबी < 1.9 का उपयोग कर रहे हैं, तो आपको रूबीजीम्स को मैन्युअल रूप से स्थापित करना होगा क्योंकि यह मूल रूप से शामिल नहीं किया जाएगा।

माणिक रत्न स्थापित करने के लिए, कमांड दर्ज करें:

gem install [gemname]

यदि आप मणि निर्भरता की सूची के साथ एक परियोजना पर काम कर रहे हैं, तो ये Gemfile नामक फ़ाइल में सूचीबद्ध Gemfile । परियोजना में एक नया रत्न स्थापित करने के लिए, निम्नलिखित कोड को Gemfile में Gemfile :

gem 'gemname'

इस Gemfile का उपयोग आपके प्रोजेक्ट के लिए निर्भरता स्थापित करने के लिए Bundler रत्न द्वारा किया जाता है, लेकिन इसका मतलब यह है कि आपको चलने से पहले Bundler स्थापित करना होगा (यदि आपके पास पहले से नहीं है):

gem install bundler

फ़ाइल सहेजें, और फिर कमांड चलाएँ:

bundle install

संस्करण निर्दिष्ट करना

संस्करण संख्या कमांड लाइव पर निर्दिष्ट की जा सकती है, -v ध्वज के साथ, जैसे:

gem install gemname -v 3.14

जब एक Gemfile में संस्करण संख्याओं को निर्दिष्ट किया Gemfile , तो आपके पास कई विकल्प उपलब्ध होते हैं:

  • कोई संस्करण निर्दिष्ट नहीं ( gem 'gemname') - नवीनतम संस्करण स्थापित करेगा जो Gemfile में अन्य रत्नों के साथ संगत है।
  • सटीक संस्करण निर्दिष्ट ( gem 'gemname', '3.14' ) - केवल संस्करण 3.14 को स्थापित करने का प्रयास करेगा (और अगर यह रत्न में अन्य रत्नों के साथ असंगत है तो विफल हो Gemfile )।
  • आशावादी न्यूनतम संस्करण संख्या ( gem 'gemname', '>=3.14' ) - केवल नवीनतम संस्करण को स्थापित करने का प्रयास करेगा जो Gemfile में अन्य रत्नों के साथ संगत है, और विफल रहता है यदि कोई संस्करण 3.14 से अधिक या उसके बराबर नहीं है। ऑपरेटर > का भी उपयोग किया जा सकता है।
  • निराशावादी न्यूनतम संस्करण संख्या ( gem 'gemname', '~>3.14' ) - यह कार्यात्मक रूप से gem 'gemname', '>=3.14', '<4' का उपयोग करने के बराबर है। दूसरे शब्दों में, अंतिम अवधि के बाद केवल संख्या को बढ़ाने की अनुमति है।

एक सर्वोत्तम अभ्यास के रूप में : आप रूबी संस्करण प्रबंधन पुस्तकालयों में से एक का उपयोग करना चाह सकते हैं जैसे कि rbenv या rvm । इन पुस्तकालयों के माध्यम से, आप रूबी रनटाइम और रत्नों के विभिन्न संस्करणों को तदनुसार स्थापित कर सकते हैं। इसलिए, जब किसी परियोजना में काम करते हैं, तो यह विशेष रूप से उपयोगी होगा क्योंकि अधिकांश परियोजनाएं एक ज्ञात रूबी संस्करण के खिलाफ कोडित हैं।

जीथब / फाइलसिस्टम से जेम इंस्टॉलेशन

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

gem install --local path_to_gem/filename.gem

गीथूब से मणि स्थापित करना। गीथूब से स्रोतों को डाउनलोड करें

mkdir newgem
cd newgem
git clone https://urltogem.git

मणि का निर्माण

gem build GEMNAME.gemspec
gem install gemname-version.gem

कोड के भीतर से एक आवश्यक मणि स्थापित होने पर जाँच करना

यह जांचने के लिए कि क्या आपके कोड के भीतर से एक आवश्यक रत्न स्थापित किया गया है, आप निम्नलिखित का उपयोग कर सकते हैं (उदाहरण के लिए नोगोगिरी का उपयोग करके):

begin
  found_gem = Gem::Specification.find_by_name('nokogiri')
  require 'nokogiri'
  ....
  <the rest of your code>
rescue Gem::LoadError
end

हालाँकि, इसे एक फ़ंक्शन में आगे बढ़ाया जा सकता है जिसका उपयोग आपके कोड के भीतर कार्यक्षमता स्थापित करने में किया जा सकता है।

def gem_installed?(gem_name)
  found_gem = false
  begin
    found_gem = Gem::Specification.find_by_name(gem_name)
  rescue Gem::LoadError
     return false
  else
    return true
  end
end

अब आप जांच सकते हैं कि क्या आवश्यक रत्न स्थापित है, और एक त्रुटि संदेश प्रिंट करें।

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  printf "nokogiri gem required\n"
  exit 1
end

या

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  require 'REXML'
end

एक Gemfile और Bundler का उपयोग करना

एक Gemfile आपके आवेदन में निर्भरता को व्यवस्थित करने का मानक तरीका है। एक मूल रत्न इस तरह दिखेगा:

source 'https://rubygems.org'

gem 'rack'
gem 'sinatra'
gem 'uglifier'

आप मणि के संस्करण निर्दिष्ट कर सकते हैं जिसे आप निम्नानुसार चाहते हैं:

# Match except on point release. Use only 1.5.X
gem 'rack', '~>1.5.2'
# Use a specific version.
gem 'sinatra', '1.4.7'
# Use at least a version or anything greater.
gem 'uglifier', '>= 1.3.0'

आप एक गिट रेपो से सीधे रत्न भी खींच सकते हैं:

# pull a gem from github
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git'
# you can specify a sha
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', sha: '30d4fb468fd1d6373f82127d845b153f17b54c51'
# you can also specify a branch, though this is often unsafe
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', branch: 'master'

आप उन रत्नों को भी समूहित कर सकते हैं, जिनके आधार पर उनका उपयोग किया जाता है। उदाहरण के लिए:

group :development, :test do
    # This gem is only available in dev and test, not production.
    gem 'byebug'
end

आप यह निर्दिष्ट कर सकते हैं कि आपको कौन से प्लेटफ़ॉर्म पर चलना चाहिए, अगर आपको कई प्लेटफ़ॉर्म पर चलने में सक्षम होना चाहिए। उदाहरण के लिए:

platform :jruby do
  gem 'activerecord-jdbc-adapter'
  gem 'jdbc-postgres'
end

platform :ruby do
  gem 'pg'
end

एक रत्न से सभी रत्न स्थापित करने के लिए:

gem install bundler
bundle install

बंडल / इनलाइन (बंडलर v1.10 और बाद में)

कभी-कभी आपको किसी के लिए एक स्क्रिप्ट बनाने की आवश्यकता होती है, लेकिन आपको यकीन नहीं है कि उसके पास क्या है। क्या वह सब कुछ है जो आपकी स्क्रिप्ट को चाहिए? कोइ चिंता नहीं। बुंडलर के पास लाइन में एक महान कार्य है।

यह एक gemfile विधि प्रदान करता है और स्क्रिप्ट को चलाने से पहले इसे डाउनलोड करता है और सभी आवश्यक रत्नों की आवश्यकता होती है। एक छोटा सा उदाहरण:

require 'bundler/inline' #require only what you need

#Start the bundler and in it use the syntax you are already familiar with
gemfile(true) do 
  source 'https://rubygems.org'
        gem 'nokogiri', '~> 1.6.8.1'
        gem 'ruby-graphviz'
end


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