Ruby Sürümlerinizi Nasıl Yönetebilirsiniz?

Ruby zamanla değişti

Ruby, 1990'lardan beri sürekli olarak geliştirilmektedir. Ve birçok dilde olduğu gibi, sürümler arasında sözdizimi değişiklikleri olmuştur. Bu, kodunuzun hangi Ruby sürümünü beklediği konusunda net olmanın önemli olduğu anlamına gelir.

Muhtemelen en görünür değişiklik Ruby 1.9 ile geldi. Daha önce, şöyle hashler yazmıştık:

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

'Hashrocket' operatörünün ( =>) bu kullanımı o kadar yaygındı ki Ruby 1.9 bir kısaltma sağlıyordu:

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

Bu eski kod herhangi bir sürümde çalışacaktır, ancak yeni sözdizimi yalnızca Ruby 1.9+ üzerinde çalışacaktır.

Bu nasıl sorunlara neden olur?

Örneğin, dahili olarak Ruby 1.9 özelliklerine dayanan bir Gem kullanmaya karar vermiş olabilirsiniz. Bu, projenizin artık Ruby 1.9 özelliklerine dayandığı anlamına gelir.

Projenizin hangi Ruby sürümüne ihtiyacı olduğunu belirtmezseniz, kodun bir makinede çalışıp başka bir makinede çalışmaması çok kafa karıştırıcı olabilir.

Çoğu dilde olduğu gibi, kodunuzun beklediği Ruby sürümünü belirtmek iyi bir uygulama olarak kabul edilir. Bu, geliştirme makinenizde her biri farklı bir Ruby sürümü bekleyen birden fazla projeyi yönetmeyi çok daha kolay hale getirir.

Ruby sürümümü nasıl belirtebilirim?

Bunun için popüler olan birkaç araç var, ancak ikisi de ortak bir dosyayı paylaşmayı kabul etti. Pek çok Ruby (veya Rails) projesi, .ruby-versionbasitçe bir sürüm numarası belirten basit bir dosya içerecektir , örneğin:

2.4.2

Ruby sürümünüzü yönetmenize yardımcı olacak popüler araçlar şunlardır:

  • Ruby Sürüm Yöneticisi (RVM)
  • rbenv

RVM'ye bakalım.

RVM'yi kullanma

RVM tipik olarak bir Linux, Unix veya MacOS makinesine kurulur (bağlantı). O takar çünkü çok uygundur cd( change directory) komutu. Böylece yeni bir projeye .ruby-versiongeçtiğinizde, otomatik olarak okunur ve çalışmaya başlamadan önce otomatik olarak Ruby'nin doğru sürümüne geçersiniz.

Örneğin, şu diziye sahip olabilirsiniz:

% 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]

(Bu örnekler bir MacOS makinesinden alınmıştır).

Ruby hakkında diğer bilgiler:

  • Ruby ile Nesne Tabanlı Programlamaya giriş
  • Bilmeniz gereken en yaygın Ruby dizisi yöntemleri