Ruby Language
Uso della gemma
Ricerca…
Installare gemme di rubini
Questa guida presuppone che tu abbia già installato Ruby. Se stai usando Ruby < 1.9
dovrai installare manualmente RubyGems in quanto non sarà incluso in modo nativo .
Per installare una gemma ruby, inserisci il comando:
gem install [gemname]
Se stai lavorando su un progetto con un elenco di dipendenze gem, queste saranno elencate in un file chiamato Gemfile
. Per installare una nuova gemma nel progetto, aggiungi la seguente riga di codice nel Gemfile
:
gem 'gemname'
Questo Gemfile
è usato dalla gemma Bundler per installare le dipendenze richieste dal tuo progetto, ma ciò significa che dovrai prima installare Bundler eseguendo (se non lo hai già fatto):
gem install bundler
Salvare il file e quindi eseguire il comando:
bundle install
Specifica delle versioni
Il numero di versione può essere specificato sul comando live, con il flag -v
, ad esempio:
gem install gemname -v 3.14
Quando si specificano i numeri di versione in un Gemfile
, sono disponibili diverse opzioni:
- Nessuna versione specificata (
gem 'gemname')
- Installa l' ultima versione compatibile con altre gemme nelGemfile
. - Versione esatta specificata (
gem 'gemname', '3.14'
): tenterà solo di installare la versione3.14
(e fallirà se questo non è compatibile con altre gemme nelGemfile
). - Numero minimo di versione ottimistico (
gem 'gemname', '>=3.14'
) -gem 'gemname', '>=3.14'
solo di installare l' ultima versione compatibile con altre gemme nelGemfile
e fallirà se nessuna versione superiore o uguale a3.14
è compatibile. L'operatore>
può anche essere usato. - Numero di versione minimo pessimistico (
gem 'gemname', '~>3.14'
) - Questo è funzionalmente equivalente all'uso digem 'gemname', '>=3.14', '<4'
. In altre parole, è consentito aumentare solo il numero dopo il periodo finale .
Come procedura: Si potrebbe desiderare di utilizzare una delle librerie di gestione versione di Ruby come rbenv o rvm . Attraverso queste librerie, è possibile installare di conseguenza diverse versioni di runtime e gemme di Ruby. Quindi, quando si lavora in un progetto, questo sarà particolarmente utile perché la maggior parte dei progetti è codificata contro una versione nota di Ruby.
Installazione gemma da github / filesystem
Puoi installare una gemma da github o dal filesystem. Se la gemma è stata estratta da git o in qualche modo già sul file system, puoi installarla usando
gem install --local path_to_gem/filename.gem
Installare gem da github. Scarica i sorgenti da github
mkdir newgem
cd newgem
git clone https://urltogem.git
Costruisci la gemma
gem build GEMNAME.gemspec
gem install gemname-version.gem
Verifica se una gemma richiesta è installata dal codice
Per verificare se una gemma richiesta è installata, dal tuo codice, puoi usare quanto segue (usando nokogiri come esempio):
begin
found_gem = Gem::Specification.find_by_name('nokogiri')
require 'nokogiri'
....
<the rest of your code>
rescue Gem::LoadError
end
Tuttavia, questo può essere ulteriormente esteso a una funzione che può essere utilizzata nella configurazione della funzionalità all'interno del codice.
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
Ora puoi controllare se è installato il gem richiesto e stampare un messaggio di errore.
if gem_installed?('nokogiri')
require 'nokogiri'
else
printf "nokogiri gem required\n"
exit 1
end
o
if gem_installed?('nokogiri')
require 'nokogiri'
else
require 'REXML'
end
Usando un Gemfile e Bundler
Un Gemfile
è il modo standard per organizzare le dipendenze nell'applicazione. Un Gemfile di base sarà simile a questo:
source 'https://rubygems.org' gem 'rack' gem 'sinatra' gem 'uglifier'
Puoi specificare le versioni della gemma che desideri come segue:
# 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'
Puoi anche estrarre gemme direttamente da un repository git:
# 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'
Puoi anche raggruppare le gemme a seconda di cosa sono usate. Per esempio:
group :development, :test do # This gem is only available in dev and test, not production. gem 'byebug' end
È possibile specificare su quale piattaforma eseguire determinate gem se l'applicazione deve essere in grado di essere eseguita su più piattaforme. Per esempio:
platform :jruby do gem 'activerecord-jdbc-adapter' gem 'jdbc-postgres' end platform :ruby do gem 'pg' end
Per installare tutte le gemme da un Gemfile fai:
gem install bundler bundle install
Bundler / inline (bundler v1.10 e successive)
A volte è necessario creare una sceneggiatura per qualcuno ma non si è sicuri di cosa abbia sulla sua macchina. C'è tutto ciò di cui ha bisogno il tuo script? Da non preoccuparsi. Bundler ha una grande funzione chiamata in linea.
Fornisce un metodo gemfile
e prima gemfile
dello script viene scaricato e richiede tutte le gemme necessarie. Un piccolo esempio:
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