Ruby è una delle lingue più popolari utilizzate sul web. Abbiamo avviato una nuova sessione qui su Nettuts + che ti introdurrà a Ruby, oltre ai grandi framework e strumenti che accompagnano lo sviluppo di Ruby. Oggi esamineremo il fantastico sistema di packaging che Ruby fornisce per la distribuzione di programmi e librerie: gemme.
È piuttosto semplice, davvero. Puoi pensare a una Ruby Gem come libreria o plug-in. Sono alcune funzionalità che installerai per soddisfare un'esigenza specifica. Se ciò sembra vago, ecco alcuni problemi pratici che le gemme risolvono:
Sono solo alcune delle cose che puoi fare con le gemme.
In breve, c'è una gemma per questo.
Prima di poter installare e utilizzare le gemme, è necessario installare la libreria RubyGems. Ovviamente, è necessario prima installare Ruby, ma a questo punto dovresti averlo.
Se sei su Ruby 1.9. * (Cosa stiamo usando in questa serie), allora non devi preoccuparti di installare RubyGems; è integrato. Se hai deciso di restare con Ruby 1.8. *, non è troppo difficile da installare. Basta andare alla pagina di download di RubyGems, scaricare il TAR o ZIP, aprirlo ed eseguire ruby setup.rb
nel terminale da quella cartella Potresti aver bisogno dei privilegi di amministratore per fare ciò (sudo
su sistemi unix, avviare la riga di comando con "Esegui come amministratore" su Windows). Questo ti renderà attivo e funzionante.
Se pensi che potresti avere già installato RubyGems, esegui gemma -v
per ottenere il numero di versione. L'ultima versione è 1.6.2. Se desideri aggiornare, corri gem update - system
. Di nuovo, potresti aver bisogno dei privilegi di amministratore. Devo dire che se sei su Windows e hai installato Ruby tramite RubyInstaller, hai installato RubyGems.
Quindi, ora che hai installato la libreria RubyGems, puoi usarla per installare le gemme che ti piacciono. Come fai a fare questo? Ancora una volta, è piuttosto semplice. La parte difficile è trovare la gemma che vorresti usare; spesso, puoi semplicemente google per qualsiasi funzionalità tu stia cercando. Una volta trovata la gemma, installala in questo modo:
gem installa GEM_NAME
È importante prestare attenzione alla documentazione per la gemma, però. Potrebbero esserci alcuni argomenti da aggiungere a quel comando; tuttavia, nella maggior parte dei casi, questo dovrebbe portarti a termine.
Un'altra nota sull'installazione di gemme: potresti notare che la documentazione di una gemma ti dice di usare sudo
quando lo si installa. Se sei su un Mac e usi RVM (come dovresti essere :)), vai via sudo
off. L'utilizzo di esso installerà la gemma per tutti gli utenti sul computer e potrebbe causare problemi con gli ambienti multipli di Ruby che potresti avere con RVM.
Mentre andiamo avanti in questa serie, useremo diverse gemme di Ruby, quindi vedrai come funzioneranno in un progetto "reale". Se vuoi provare a installarne alcuni ora, prova la gemma Markdown (maruku) o la gemma Amazon S3 (aws-s3).
gem installazione maruku gem installazione aws-s3
Quindi, hai installato le tue gemme; e adesso? Bene, usali, certo! Ci sono due modi in cui puoi usare le gemme. Alcuni sono programmi ruby autonomi che eseguirai (molto spesso dalla riga di comando) per fare qualcosa. La gemma Rails è un ottimo esempio di questo. Tu corri rota nuovo PROJECT_NAME
dalla riga di comando per generare un nuovo progetto di rotaie; quindi, lo userai altre volte per generare modelli, controller, ecc. Quindi, ci sono gemme che utilizzerai solo all'interno di progetti come la gemma Amazon S3. Non è molto buono da solo, ma è piuttosto utile in combinazione con il tuo codice. Se vuoi utilizzare una gemma all'interno del tuo codice, dovrai prima richiederla. Questo di solito è fatto nella parte superiore del file.
richiede 'rubygems' # solo su Ruby 1.8 richiede 'aws / s3' # la gemma S3
Non credo che abbiamo discusso richiedere
prima; Ruby non carica tutto per impostazione predefinita, quindi puoi usarlo richiedere
per caricare librerie aggiuntive che si desidera utilizzare. Vedremo più di questo mentre andiamo avanti.
Infine, alcune gemme fanno entrambe le cose. La gemma Maruku convertirà Markdown in HTML. Lo uso dalla riga di comando tutto il tempo:
maruku doc.markdown
Converte il documento Markdown in HTML. Tuttavia, puoi anche usarlo dal tuo codice:
require 'maruku' str = "#Questo è un titolo \ n \ n * alcuni \ n * elenco \ n * elementi" md = Maruku.new (str) md.to_html_document
Una volta creato un progetto, potresti volerlo condividere o usarlo su un altro computer. Tuttavia, chiunque altro che lo esegue avrà bisogno di avere tutte le gemme giuste installate. Ora, puoi rendere il processo di installazione semplice con un progetto chiamato Bundler. C'è molto che Bundler può fare, ma in questo momento cercheremo semplicemente la superficie.
Prima di tutto, Bundler è una gemma in sé; puoi installarlo eseguendo gem install bundler
.
Quindi, nella radice del tuo progetto, crea un file chiamato Gemfile
. Questo dichiarerà quali gemme hai bisogno per questo progetto.
La prima riga del tuo Gemfile dirà a Bundler dove ottenere le tue gemme. Le gemme vivono in archivi online, quindi avrà bisogno di sapere dove trovarli. La maggior parte delle volte, usando semplicemente rubygems.org, la tua fonte sarà sufficiente, ma puoi avere più sorgenti se vuoi.
fonte "http; // rubygems.org"
Quindi, elenca le tue gemme in questo modo:
gem "rails", "3.0.1" gemma "maruku" gemma "aws-s3",: require => "aws / s3"
Nota che possiamo dire quale versione di una gemma ci serve se abbiamo bisogno di una versione specifica. Inoltre, nota l'hash (abbiamo lasciato le parentesi perché possiamo in questo caso) sulla terza gemma. Questo dice a Bundler come dobbiamo richiedere
la gemma. Questo è necessario solo se due cose sono vere: 1) è richiesta una gemma con un nome diverso da quello con cui è stata installata, e 2) stiamo usando Bundler per richiedere le gemme.
Se hai molte gemme, puoi usare Bundler per richiederle tutte nel tuo codice. Basta fare questo:
richiedere Bundler.require 'bundler / setup' (: predefinito)
Questo caricherà tutte quelle gemme. Naturalmente, questo è molto più utile quando si utilizzano alcune delle configurazioni avanzate di Bundler.
L'ultima volta, ho chiesto a voi lettori / osservatori cosa volete vedere dopo. Hai detto chiaramente: roba sul Web !? La prossima lezione, passeremo ad usare il semplice framework Sinatra per costruire un sito web. Fino ad allora!