Ruby s-a schimbat de-a lungul timpului

Ruby a fost în continuă dezvoltare încă din anii ’90. Și, ca multe limbi, au existat modificări ale sintaxei între versiuni. Aceasta înseamnă că este important să fie clar despre ce versiune Ruby se așteaptă codul dvs.

Probabil că cea mai vizibilă schimbare a venit cu Ruby 1.9. Anterior, am scris hașeuri de genul acesta:

  { :one => 1, :two => 2, :three => 3 }

Această utilizare a operatorului „hashrocket” (=>) a fost atât de obișnuit, încât Ruby 1.9 a furnizat o scurtătură:

  { one: 1, two: 2, three: 3 }

Acest cod mai vechi va rula pe orice versiune, dar sintaxa mai nouă va rula doar pe Ruby 1.9+.

Cum cauzează acest lucru probleme?

De exemplu, s-ar putea să fi decis să utilizați o Gemă care se bazează intern pe caracteristicile Ruby 1.9. Aceasta înseamnă că proiectul dvs. se bazează acum și pe caracteristicile Ruby 1.9.

Dacă nu specificați ce versiune de Ruby are nevoie de proiectul dvs., poate fi foarte confuz atunci când codul funcționează pe o mașină, dar nu pe alta.

La fel ca în majoritatea limbilor, este considerată o bună practică să specificați versiunea de Ruby la care se așteaptă codul dvs. Acest lucru face mult mai ușor să gestionați mai multe proiecte pe mașina dvs. de dezvoltare, fiecare așteptând o versiune diferită a Ruby.

Cum îmi specific versiunea Ruby?

Există câteva instrumente care sunt populare pentru acest lucru, dar ambele au fost de acord să partajeze un fișier comun. Multe proiecte Ruby (sau Rails) vor include un simplu .ruby-version fișier, care specifică pur și simplu un număr de versiune, de exemplu:

2.4.2

Instrumentele populare care vă ajută să vă gestionați versiunea Ruby sunt:

Să ne uităm la RVM.

Folosind RVM

RVM este de obicei instalat (legătură) pe o mașină Linux, Unix sau MacOS. Este foarte convenabil deoarece se prinde de cd (change directorie) comandă. Deci, atunci când vă mutați la un nou proiect, dvs. .ruby-version este citit automat și veți trece automat la versiunea corectă a Ruby înainte de a începe să lucrați.

De exemplu, este posibil să aveți această secvență:

% cd ~/projects/older-project
% ruby --version

ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-darwin16]

% cd ~/projects/newer-project
% ruby --version

ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin16]

(Aceste exemple provin dintr-o mașină MacOS).

Alte informații despre Ruby:

  • O introducere în programarea orientată pe obiecte cu Ruby
  • Cele mai comune metode de matrice Ruby ar trebui să le cunoașteți