Sök…


Installera rubin ädelstenar

Den här guiden antar att du redan har Ruby installerat. Om du använder Ruby < 1.9 måste du installera RubyGems manuellt eftersom det inte kommer att inkluderas naturligt .

För att installera en rubinpärla, ange kommandot:

gem install [gemname]

Om du arbetar med ett projekt med en lista över pärlberoende, kommer dessa att listas i en fil med namnet Gemfile . För att installera en ny pärla i projektet, lägg till följande kodrad i Gemfile :

gem 'gemname'

Denna Gemfile används av Bundler-pärla för att installera beroenden som ditt projekt kräver, men det betyder dock att du måste installera Bundler först genom att köra (om du inte redan har gjort det):

gem install bundler

Spara filen och kör sedan kommandot:

bundle install

Ange versioner

Versionsnumret kan anges på kommandot live med flaggan -v , till exempel:

gem install gemname -v 3.14

När du specificerar Gemfile i en Gemfile har du flera alternativ tillgängliga:

  • Ingen version specificerad ( gem 'gemname') - Installerar den senaste versionen som är kompatibel med andra ädelstenar i Gemfile .
  • Exakt version specificerad ( gem 'gemname', '3.14' ) - Försöker endast installera version 3.14 (och misslyckas om detta är oförenligt med andra ädelstenar i Gemfile ).
  • Optimistiskt minimumversionsnummer ( gem 'gemname', '>=3.14' ) - Försöker endast installera den senaste versionen som är kompatibel med andra ädelstenar i Gemfile , och misslyckas om ingen version större än eller lika med 3.14 är kompatibel. Operatören > kan också användas.
  • Pessimistisk minimversionsnummer ( gem 'gemname', '~>3.14' ) - Detta är funktionellt ekvivalent med att använda gem 'gemname', '>=3.14', '<4' . Med andra ord, endast antalet efter den sista perioden får öka.

Som en bästa praxis : Du kanske vill använda ett av Ruby- versionhanteringsbibliotek som rbenv eller rvm . Genom dessa bibliotek kan du installera olika versioner av Ruby runtimes och ädelstenar i enlighet därmed. Så när du arbetar i ett projekt kommer detta att vara särskilt praktiskt eftersom de flesta av projekten är kodade mot en känd Ruby-version.

Gem installation från github / filsystem

Du kan installera en pärla från github eller filsystem. Om pärlan har checkats ut från git eller på något sätt redan i filsystemet, kan du installera den med

gem install --local path_to_gem/filename.gem

Installera pärla från github. Ladda ner källorna från github

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

Bygg pärla

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

Kontrollera om en nödvändig pärla är installerad från koden

För att kontrollera om en obligatorisk pärla är installerad, från din kod, kan du använda följande (med användning av nokogiri som ett exempel):

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

Detta kan emellertid utökas till en funktion som kan användas för att ställa in funktionalitet i din kod.

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

Nu kan du kontrollera om den nödvändiga pärlan är installerad och skriva ut ett felmeddelande.

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

eller

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

Med hjälp av en Gemfile och Bundler

En Gemfile är det vanliga sättet att organisera beroenden i din applikation. En grundläggande Gemfile kommer att se ut så här:

source 'https://rubygems.org'

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

Du kan ange vilka versioner av pärla du vill ha på följande sätt:

# 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'

Du kan också dra gems direkt från en git repo:

# 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'

Du kan också gruppera ädelstenar beroende på vad de används för. Till exempel:

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

Du kan ange vilken plattform vissa ädelstenar ska köras om din ansökan måste kunna köras på flera plattformar. Till exempel:

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

platform :ruby do
  gem 'pg'
end

Så här installerar du alla ädelstenar från en Gemfile:

gem install bundler
bundle install

Bundler / inline (bundler v1.10 och senare)

Ibland måste du skapa ett manus till någon men du är inte säker på vad han har på sin maskin. Finns det allt som ditt skript behöver? Oroa dig inte. Bundler har en fantastisk funktion som kallas i rad.

Det tillhandahåller en gemfile metod och innan skriptet körs hämtar det och kräver alla nödvändiga ädelstenar. Ett litet exempel:

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow