|
| 1 | +--- |
| 2 | +layout: doc_it |
| 3 | +title: Guide - Migrare da MRI a Rubinius |
| 4 | +previous: Guide |
| 5 | +previous_url: guides |
| 6 | +next: How-To |
| 7 | +next_url: how-to |
| 8 | +--- |
| 9 | + |
| 10 | +Questa guida vi aiuterà nella migrazione della vostra applicazione Ruby o Ruby |
| 11 | +on Rails da MRI (Matz's Ruby Implementation) a Rubinius. La guida assume che |
| 12 | +abbiate familiarità con Ruby o Ruby on Rails, RubyGems e Bundler. Si suppone |
| 13 | +inoltre che sappiate usare la riga di comando. |
| 14 | + |
| 15 | +## 1. Installare Rubinius |
| 16 | + |
| 17 | +Il primo passo della migrazione a Rubinius è installare Rubinius. Durante la |
| 18 | +migrazione avrete probabilmente bisogno di passare spesso da MRI a Rubinius e |
| 19 | +viceversa, vi suggeriamo quindi di utilizzare uno strumento che vi consenta di |
| 20 | +farlo. |
| 21 | + |
| 22 | +Lo strumento che raccomandiamo è |
| 23 | +[chruby](https://github.com/postmodern/chruby), che utilizzeremo per tutti gli |
| 24 | +esempi di questa guida. |
| 25 | + |
| 26 | +### Installare chruby e ruby-install |
| 27 | + |
| 28 | +Se usate OS X, il modo più facile per installare `chruby` e `ruby-install` è |
| 29 | +usare [Homebrew](https://github.com/Homebrew/homebrew): |
| 30 | + |
| 31 | + $ brew update |
| 32 | + $ brew install chruby ruby-install |
| 33 | + |
| 34 | +Se non utilizzate Homebrew o utilizzate un sistema operativo diverso da OS X, |
| 35 | +fate riferimento alle [istruzioni di installazione di |
| 36 | +chruby](https://github.com/postmodern/chruby#install) e le [istruzioni di |
| 37 | +installazione di |
| 38 | +ruby-install](https://github.com/postmodern/ruby-install#install). |
| 39 | + |
| 40 | +Per configurare `chruby`, aggiungete questa riga al file ~/.bashrc o ~/.zshrc: |
| 41 | + |
| 42 | + source /usr/local/opt/chruby/share/chruby/chruby.sh |
| 43 | + |
| 44 | +Consultate le [istruzioni di |
| 45 | +configurazione](https://github.com/postmodern/chruby#configuration) per |
| 46 | +maggiori informazioni. |
| 47 | + |
| 48 | +### Utilizzare ruby-install |
| 49 | + |
| 50 | +Una volta installato `ruby-install`, installare Rubinius è semplicissimo: |
| 51 | + |
| 52 | + $ ruby-install rbx 2.2.5 |
| 53 | + |
| 54 | +Per istruzioni su come installare altre implementazioni di Ruby, fate |
| 55 | +riferimento alla |
| 56 | +[documentazione](https://github.com/postmodern/ruby-install#synopsis). |
| 57 | + |
| 58 | +### Utilizzare chruby |
| 59 | + |
| 60 | +Ora che Rubinius è installato, potete attivarlo con questo comando: |
| 61 | + |
| 62 | + $ chruby rbx |
| 63 | + |
| 64 | +## 2. Gemme |
| 65 | + |
| 66 | +La maggior parte delle gemme che funzionano su MRI dovrebbero funzionare anche |
| 67 | +su Rubinius, con le eccezioni evidenziate di seguito. Inoltre Rubinius rende |
| 68 | +dei componenti del sistema disponibili come gemme: queste comprendono gli |
| 69 | +strumenti usati da Rubinius per effettuare il parsing e la compilazione di |
| 70 | +codice Ruby, il debugger, il profiler e la Ruby standard library. Tutte queste |
| 71 | +gemme vengono pre-installate quando si installa Rubinius. |
| 72 | + |
| 73 | +### Gemme con estensioni in C |
| 74 | + |
| 75 | +Molte gemme che utilizzano estensioni in C funzionano perfettamente su |
| 76 | +Rubinius. Fanno eccezione quelle che dipendono da strutture dati interne ad |
| 77 | +MRI: queste gemme non possono essere supportate su Rubinius, e includono |
| 78 | +`ruby-debug` e `ruby-prof`. Rubinius fornisce però un suo debugger e un suo |
| 79 | +profiler, oltre ad altri strumenti. Maggiori dettagli nella |
| 80 | +[documentazione](http://rubini.us/doc/en/tools/). |
| 81 | + |
| 82 | +## 3. Gemfile |
| 83 | + |
| 84 | +Il vostro Gemfile dovrebbe funzionare con Rubinius, ma è necessario eseguire |
| 85 | +`bundle update` per forzare il ricalcolo delle dipendenze. Se utilizzate gemme |
| 86 | +che non sono compatibili con Rubinius, potete inserirle in un blocco |
| 87 | +`platforms` finché la migrazione a Rubinius non sarà completata: |
| 88 | + |
| 89 | + # Esempio di blocco `platforms` |
| 90 | + platforms :mri do |
| 91 | + gem 'ruby-prof' |
| 92 | + gem 'ruby-debug' |
| 93 | + end |
| 94 | + |
| 95 | +## 4. Problemi di compatibilità |
| 96 | + |
| 97 | +La comunità di Rubinius ha dato vita al progetto |
| 98 | +[RubySpec](http://rubyspec.org), il cui obiettivo è descrivere il comporamento |
| 99 | +di Ruby e monitorare la compatibilità delle diverse implementazioni di Ruby con |
| 100 | +MRI. |
| 101 | + |
| 102 | +Con qualche eccezione, Rubinius dovrebbe essere compatibile con MRI 2.1. Alcune |
| 103 | +funzionalità, come i keyword arguments, non sono ancora state implementate. |
| 104 | +Altre funzionalità potrebbero non essere state implementate in quanto |
| 105 | +sconosciute e non ancora coperte da RubySpec. Numerosi componenti della |
| 106 | +standard library, come Continuation, Ripper, TracePoint, e Tracer, non sono |
| 107 | +ancora presenti ma potrebbero esserlo in futuro. |
| 108 | + |
| 109 | +Se riscontrate un'incompatibilità tra il comportamento di Rubinius e quello di |
| 110 | +MRI, probabilmente si tratta di un bug. Per favore |
| 111 | +[segnalatelo](https://github.com/rubinius/rubinius/issues). |
0 commit comments