Ruby az idők folyamán megváltozott
A Ruby az 1990-es évek óta folyamatosan fejlődik. És sok nyelvhez hasonlóan itt is változtak a szintaxisok a verziók között. Ez azt jelenti, hogy fontos tisztázni, hogy a kód melyik Ruby verzióra számít.
Valószínűleg a legláthatóbb változás a 1.9-es Ruby-val történt. Korábban ilyen hasheket írtunk:
{ :one => 1, :two => 2, :three => 3 }
Ez a 'hashrocket' operátor ( =>
) olyan gyakori volt, hogy a Ruby 1.9 rövidítést adott:
{ one: 1, two: 2, three: 3 }
Ez a régebbi kód bármely verzión futni fog, de az újabb szintaxis csak a Ruby 1.9+ verzión fut.
Hogyan okozhat ez problémákat?
Például eldönthette, hogy használ egy Gem-et, amely belsőleg támaszkodik a Ruby 1.9 szolgáltatásaira. Ez azt jelenti, hogy a projekt most is a Ruby 1.9 funkcióira támaszkodik.
Ha nem adja meg, melyik Ruby verzióra van szüksége a projektjének, akkor nagyon zavaró lehet, ha a kód az egyik gépen működik, a másikban nem.
A legtöbb nyelvhez hasonlóan jó gyakorlatnak tekinthető a Ruby azon verziójának megadása, amelyre a kód számít. Ez sokkal könnyebbé teszi több projekt kezelését a fejlesztőgépen, és mindegyik a Ruby különböző verziójára számít.
Hogyan adhatom meg a Ruby verziómat?
Van néhány eszköz, amely erre népszerű, de mindkettő beleegyezett abba, hogy megosztja a közös fájlt. Sok Ruby (vagy Rails) projekt tartalmaz egy egyszerű .ruby-version
fájlt, amely egyszerűen megadja a verziószámot, például:
2.4.2
Népszerű eszközök a Ruby verzió kezelésében:
- Ruby Version Manager (RVM)
- rbenv
Nézzük az RVM-et.
Az RVM használata
Az RVM rendszerint Linux, Unix vagy MacOS gépekre van telepítve (link). Nagyon kényelmes, mert bekapcsolódik a cd
( c
hange d
irectory) parancsba. Tehát amikor új projektre lép, a .ruby-version
rendszer automatikusan elolvassa a dokumentumot, és a munka megkezdése előtt automatikusan a Ruby megfelelő verziójára vált.
Például ez a sorrend lehet:
% 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]
(Ezek a példák egy MacOS gépről származnak).
Egyéb információ a Ruby-ról:
- Bevezetés az objektumorientált programozáshoz Ruby-val
- A leggyakoribb Ruby tömb módszerek, amelyeket tudnia kell