## page was renamed from Programmazione/Ruby
#language it
#format wiki
<<Indice(depth=1)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=421926"; rilasci="20.04 21.04 21.10";)>>

= Introduzione =

'''Ruby''' è un linguaggio di programmazione a oggetti particolarmente utilizzato in ambito web.<<BR>>
Viene qui mostrato come installare i pacchetti base disponibili direttamente in Ubuntu oppure utilizzando strumenti più adatti in ambiente di sviluppo ('''RVM''', '''!RubyGems''').

= Installazione =

{{{#!wiki tip
Se si avesse la necessità di installare una versione di '''Ruby''' differente da quella presente nei  [[Repository|repository]] o comunque avere a disposizionie più versioni in ambiente di sviluppo, è consigliabile seguire la guida su [[Programmazione/Ruby/Rvm|RVM]].
}}}

[[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://ruby|ruby]].

= Installazione tramite RVM =

 * Consultare la [[Programmazione/Ruby/Rvm|seguente guida]].

= Esecuzione script =

Viene preso come esempio uno script che simula il lancio di un dado... con la speranza di fare 6 ;)

 0. Salvare nella propria '''Home''' un file di testo col nome `dado.rb` contenente le seguenti stringhe:{{{
print 'Premi invio per tirare il dado '
gets
risultato = rand(1..6)
risultato == 6 ? puts('Wow! Hai fatto 6 :)') : puts("Hai fatto #{risultato}")
}}}
 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
ruby dado.rb 
}}}Se tutto è stato eseguito nel modo corretto si avvia un semplice gioco interattivo in cui viene lanciato un dado e si visualizzerà un risultato di questo tipo:{{{
Premi invio per tirare il dado 
Hai fatto 3
}}}

== Metodo alternativo ==

 0. inserire all'inizio dello script la direttiva:{{{
#!/usr/bin/env ruby
#!/usr/bin/env ruby
}}}
 0. Rendere lo script eseguibile con il comando:{{{
chmod u+x dado.rb
}}}
 0. Sarà ora possibile avviare lo script con il comando:{{{
./dado.rb
}}}

= Shell interattiva =

'''Ruby''' è provvisto di una shell interattiva chiamata '''irb'''. Tuttavia viene spesso preferita '''[[https://pry.github.io/|pry]]''' in quanto più performante e con funzionalità aggiuntive in particolare per il debug. In tal caso installare il pacchetto [[apt://pry|pry]] oppure il relativo pacchetto tramite [[#gem|RubyGem]].

 * Per invocare la shell interattiva sarà, a seconda dei casi, sufficiente digitare il comando:{{{
irb
}}}oppure:{{{
pry
}}}

 * Per uscire dalla shell interattiva, digitare:{{{
exit
}}} oppure la combinazione di tasti '''Ctrl+Z'''.

<<Anchor(gem)>>
= Gestore pacchetti RubyGem =

'''Ruby''' ha internamente un suo gestore di pacchetti [[https://rubygems.org/|RubyGem]] per aggiungere funzionalità al linguaggio.<<BR>>
Tuttavia è bene fare un distinguo in base al caso si stia utilizzando la versione di '''Ruby''' resa disponibile da Ubuntu oppure tramite un [[Programmazione/Ruby/Rvm|manager di versione]].<<BR>>
 * '''!RubyGem''' sarà il gestore pacchetti di riferimento nel caso si stia utilizzando una versione di Ruby installata tramite [[Programmazione/Ruby/Rvm|manager di versione]].
 * Se invece si sta utilizzando la versione '''fornita da Ubuntu''', è bene sapere che una vasta gamma di pacchetti aggiuntivi sono già presenti all'interno dei repository di Ubuntu. Pertanto in molti casi non sarà necessario ricorrere a metodi alternativi per installarli.<<BR>>Tuttavia nel caso si optasse per l'utilizzo di '''!RubyGem''', sarà necessario impostare le variabili di ambiente aggiungendo nel file `.bashrc` (presente nella propria '''home''') le seguenti righe:{{{
## Ruby gem
export GEM_HOME="$HOME/.gem"
export PATH="$HOME/.gem/bin:$PATH"
}}}Andrà quindi riavviato il terminale se in utilizzo.

== Utilizzo ==

Il generico comando per installare un pacchetto è del tipo:
 {{{
gem install NOME_PACCHETTO
}}}
Ad esempio, per installare il pacchetto ''rubocop'', il comando diviene:
 {{{
gem install rubocop
}}}
Per installare una versione specifica, ad es. la '''0.86.0''', il comando diviene:
 {{{
gem install rubocop --version 0.86.0
}}}

{{{#!wiki tip
Per ulteriori comandi consultare la [[https://guides.rubygems.org/rubygems-basics/|guida ufficiale]].
}}}

= Rubocop =

'''[[https://rubocop.org/|RuboCop]]''' è un analizzatore di codice in grado di rilevare eventuali divergenze dalle [[https://github.com/rubocop/ruby-style-guide/blob/master/README.adoc|linee guida]] stilistiche riguardanti la sintassi di '''Ruby'''. Può rivelarsi uno strumento molto utile a migliorare il codice rilevando il cattivo utilizzo di:
 * indentazione
 * spazi vuoti
 * variabili inutilizzate
 * metodi (funzioni in Ruby) eccessivamente lunghe
 * altro..

[[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://rubocop|rubocop]].

{{{#!wiki tip
Il pacchetto è installabile anche tramite [[#gem|RubyGem]]. 
}}}

Per utilizzarlo, supponendo di aver creato il file `script.rb` nella propria '''Home''', digitare il comando:
 {{{
rubocop script.rb
}}}

= Guide per principianti =

 * [[https://launchschool.com/books/|Sito launchschool.com]]
 * [[http://rubymonstas.org/|Sito rubymonstas.org]]
 * [[https://www.rubyguides.com|Sito rubyguides.com]]

= Ulteriori risorse =

 * [[http://www.ruby-lang.org/it|Sito ufficiale del progetto]]
 * [[https://ruby-doc.com/|Documentazione ufficiale]]
 * [[https://rvm.io/|Sito ufficiale di RVM]]
 * [[https://rubygems.org/|Sito ufficiale di RubyGems]]
 * [[Programmazione/RubyOnRails|Guida per Ruby on Rails]]

----
CategoryProgrammazione