Le basi di una gemma di rubino

Ho usato le gemme di rubino per qualche settimana, ed è stato fantastico, ma non ero molto sicuro di cosa stesse succedendo sotto il cofano quando ne ho aggiunta una alla mia applicazione. Quindi questo post sul blog è per aiutarmi a capire come funzionano le gemme e spero che aiuti anche voi.

Una gemma di rubino è un pacchetto di codice ruby che potete aggiungere alla vostra applicazione. Questo può farvi risparmiare tempo usando il codice che altri hanno scritto per risolvere problemi simili. Per esempio, se volete cambiare il colore di un testo, potete installare e usare la gemma colorize. Ottieni tutte le sue funzionalità senza dover scrivere quel codice da solo.

Sinatra è una gemma, Rack è una gemma, e sono stato sorpreso di imparare che anche Rails è una gemma. Tutte le gemme pubbliche sono pubblicate attraverso RubyGems.org. È qui che le persone possono contribuire e condividerle con la comunità.

Iniziamo installando una gemma

Scegli una gemma e installiamola. Ho scelto di aggiungere la gemma colorize alla mia applicazione, che cambia il colore di una stringa che passiamo. Potete eseguire gem install gem_name per scaricare la gemma sul vostro computer e renderla disponibile alle vostre applicazioni. Ti stai chiedendo dove vive la gemma dopo la sua installazione? Puoi eseguire gem which gem_name e ti dirà esattamente dove si trova.

gem install colorize

Per usare la gemma nel nostro codice dovrai richiederla in cima al tuo file mettendo require ‘gem_name’. Lo facciamo in modo da avere accesso alla gemma e ora non dovremo scrivere il nostro codice per colorare il testo.

require ‘colorize’

Ora che avete installato e richiesto la gemma, potete usarla. In genere, se vai al repo GitHub della gemma, troverai importanti informazioni sulle sue caratteristiche e su come usarle.

https://github.com/fazibear/colorize

Usiamola!

Allora abbiamo letto il readme e ora vogliamo aggiungere del colore al nostro testo. Ho aggiunto tre colori diversi nel mio codice, chiamando .colorze(:color) su una stringa.

Eseguire il codice

Grande! Non è bello? Quindi abbiamo installato la nostra gemma e sembra funzionare, ma cosa succede se abbiamo un’applicazione più grande che richiede molte gemme? Chiamare gem install e richiedere ogni gemma sembra un sacco di lavoro. Sicuramente c’è un modo più semplice.

Bundler

Bundler ci rende la vita molto più facile. Cos’è bundler? Beh, è una gemma, naturalmente! Tiene traccia di ogni gemma e installa la gemma esatta e la versione che hai bisogno di usare nella tua applicazione. Per usare bundler, avrete bisogno di un Gemfile nella directory del vostro progetto e al suo interno potrete elencare tutte le gemme che volete. Per farlo, basta aprire il Gemfile e aggiungere la gemma ‘gem_name’.

Una volta aggiunta al tuo Gemfile, assicurati di eseguire bundle install nel tuo terminale. Questo installerà tutte le gemme elencate nel vostro Gemfile, insieme alle loro dipendenze. Questo rende certamente le cose molto più facili. La cosa fantastica è che Ruby 2.6 e successivi includono automaticamente bundler, quindi non avrete bisogno di installarlo voi stessi.

Sembra che dobbiamo ancora aggiungere require ‘gem_file’ all’inizio dei nostri file, e anche questo sembra un sacco di lavoro se ne abbiamo molti. A quanto pare, bundler ha pensato anche a questo. Potete aggiungere require ‘bundler’ all’inizio del vostro file .rb e scrivere Bunlder.require(:default). Ciò che questo fa sotto il cofano è chiamare require ‘gem_name’ per ogni gemma che hai nel tuo gemfile.

Bundler.require(:default)

Una volta che hai eseguito bundle install, potresti notare che vengono installate molte gemme che non hai aggiunto. Perché è così? Molte gemme richiedono che altre gemme siano installate insieme a loro. Per esempio, rails richiede molte altre gemme e queste gemme possono richiederne altre e così via. Bundler si assicurerà che tutte le versioni delle gemme installate siano compatibili tra loro.

Dopo aver trovato le versioni corrette di ogni gemma, le registra in un altro file chiamato Gemfile.lock. Questo rende possibile installare esattamente la stessa versione su ogni macchina che dovrà eseguire l’applicazione.

Un file Gemfile.lock

Puoi vedere nel mio Gemfile.lock che lolize richiede la gemma paint e le versioni che può usare. Quindi bundler prenderà quello e la versione corretta per noi. Non è utile? Grazie bundler!

Quindi questo è tutto! Spero che questo vi abbia aiutato a capire le basi di una gemma e di bundler. Ci sono molte gemme là fuori che puoi usare e puoi cercarle qui. https://rubygems.org/.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.