Ruby Language
Edelsteinverwendung
Suche…
Ruby Edelsteine installieren
In diesem Handbuch wird davon ausgegangen, dass Sie bereits Ruby installiert haben. Wenn Sie Ruby < 1.9
Sie RubyGems manuell installieren, da es nicht nativ enthalten ist .
Geben Sie den folgenden Befehl ein, um einen Rubinstein zu installieren:
gem install [gemname]
Wenn Sie an einem Projekt mit einer Liste von Gem-Abhängigkeiten arbeiten, werden diese in einer Datei namens Gemfile
. Um einen neuen Edelstein im Projekt zu installieren, fügen Sie der Gemfile
die folgende Codezeile Gemfile
:
gem 'gemname'
Diese Gemfile
wird vom Bundler- Gemfile
verwendet, um die Abhängigkeiten zu installieren, die für Ihr Projekt erforderlich sind. Dies bedeutet jedoch, dass Sie Bundler zuerst installieren müssen, indem Sie Folgendes ausführen (falls Sie dies nicht bereits getan haben):
gem install bundler
Speichern Sie die Datei und führen Sie dann den Befehl aus:
bundle install
Versionen angeben
Die Versionsnummer kann im Befehl live mit dem Flag -v
, z. -v
:
gem install gemname -v 3.14
Bei der Angabe von Versionsnummern in einer Gemfile
stehen Ihnen mehrere Optionen zur Verfügung:
- Keine Version angegeben (
gem 'gemname')
- Installiert die neueste Version, die mit anderenGemfile
in derGemfile
kompatibel ist. - Genaue Version angegeben (
gem 'gemname', '3.14'
) -gem 'gemname', '3.14'
nur Version3.14
zu installieren (undGemfile
fehl, wenn dies nicht mit anderenGemfile
in derGemfile
). - Optimistische Mindestversionsnummer (
gem 'gemname', '>=3.14'
) -gem 'gemname', '>=3.14'
nur, die neueste Version zu installieren, die mit anderenGemfile
in derGemfile
kompatibel ist, und schlägt fehl, wenn keine Version größer oder gleich3.14
kompatibel ist. Der Operator>
kann auch verwendet werden. - Pessimistische Mindestversionsnummer (
gem 'gemname', '~>3.14'
) - Dies entspricht funktional der Verwendung vongem 'gemname', '>=3.14', '<4'
. Mit anderen Worten, nur die Zahl nach der letzten Periode darf sich erhöhen.
Als Best Practice: Sie könnte eine der Ruby - Version Management - Bibliotheken wie verwenden möchten rbenv oder rvm . Über diese Bibliotheken können Sie verschiedene Versionen von Ruby-Laufzeiten und Edelsteinen entsprechend installieren. Wenn Sie also in einem Projekt arbeiten, ist dies besonders praktisch, da die meisten Projekte mit einer bekannten Ruby-Version codiert sind.
Gem Installation von github / filesystem
Sie können einen Edelstein von Github oder Dateisystem installieren. Wenn der Edelstein von git ausgecheckt wurde oder bereits im Dateisystem vorhanden ist, können Sie ihn mit installieren
gem install --local path_to_gem/filename.gem
Edelstein von Github installieren. Laden Sie die Quellen von Github herunter
mkdir newgem
cd newgem
git clone https://urltogem.git
Baue den Edelstein
gem build GEMNAME.gemspec
gem install gemname-version.gem
Überprüfen, ob ein erforderlicher Juwel im Code installiert ist
Um zu überprüfen, ob ein erforderlicher Edelstein installiert ist, können Sie in Ihrem Code Folgendes verwenden (am Beispiel von nokogiri):
begin
found_gem = Gem::Specification.find_by_name('nokogiri')
require 'nokogiri'
....
<the rest of your code>
rescue Gem::LoadError
end
Dies kann jedoch zu einer Funktion erweitert werden, die zum Einrichten der Funktionalität in Ihrem Code verwendet werden kann.
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
Nun können Sie überprüfen, ob der benötigte Edelstein installiert ist, und eine Fehlermeldung drucken.
if gem_installed?('nokogiri')
require 'nokogiri'
else
printf "nokogiri gem required\n"
exit 1
end
oder
if gem_installed?('nokogiri')
require 'nokogiri'
else
require 'REXML'
end
Gemfile und Bundler verwenden
Eine Gemfile
ist die Standardmethode, um Abhängigkeiten in Ihrer Anwendung zu organisieren. Ein einfaches Gemfile sieht so aus:
source 'https://rubygems.org' gem 'rack' gem 'sinatra' gem 'uglifier'
Sie können die Versionen des Edelsteins wie folgt angeben:
# 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'
Sie können Edelsteine auch direkt aus einem Git-Repo ziehen:
# 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'
Sie können auch Edelsteine gruppieren, je nachdem, wofür sie verwendet werden. Zum Beispiel:
group :development, :test do # This gem is only available in dev and test, not production. gem 'byebug' end
Sie können angeben, auf welcher Plattform bestimmte Gems ausgeführt werden sollen, wenn Ihre Anwendung auf mehreren Plattformen ausgeführt werden muss. Zum Beispiel:
platform :jruby do gem 'activerecord-jdbc-adapter' gem 'jdbc-postgres' end platform :ruby do gem 'pg' end
Um alle Edelsteine aus einem Gemfile zu installieren, gehen Sie folgendermaßen vor:
gem install bundler bundle install
Bundler / Inline (Bundler v1.10 und höher)
Manchmal müssen Sie ein Skript für jemanden erstellen, wissen aber nicht, was er auf seinem Rechner hat. Gibt es alles, was dein Skript braucht? Keine Sorgen machen. Bundler hat eine großartige Funktion, die in Line aufgerufen wird.
Es stellt eine gemfile
Methode gemfile
Bevor das Skript ausgeführt wird, lädt es herunter und benötigt alle erforderlichen Edelsteine. Ein kleines Beispiel:
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