Daha önce Ruby hakkında bir yazı yazmış ve neden Ruby sorusuna kısaca cevap vermeye çalışmıştım. Bu yazımda ise sizlere Ruby çalışmalarım esnasında aldığım notlardan da yola çıkarak bir Ruby programını nasıl çalıştırılacağını anlatacağım. Bildiğiniz üzere Ruby yorumlanan bir dil yani yazdığımız kodlar önce yorumlayıcı tarafından değerlendirilerek makine diline çevrilir sonrasında çalıştırılır. Bu yüzden öncelikle Yorumlayıcı (Ruby Interpreter) ile tanışmak gerekiyor.
Yorumlayıcı (Interpreter)
Ruby yorumlayıcısını çalıştırmak için kullandığımız işletim sistemine göre farklı yollar ile gerçekleştirebiliriz. Bunlar Windos için Komut Satırı, MacOS ta Terminal ve Linux için de Shell uygulamalarını çalıştırmamız gerekiyor. Ruby yorumlayıcısı “ruby” komutu ile çalıştırılıyor ve bu komutun hemen arkasından da parametremisi belirtmemiz gerekiyor.
İlk komut olarak bilgisayarımızda yüklü olan ruby versiyonunu öğrenmekle başalyalım.
C:\>ruby -v ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]
Ben PC kullandığım için yukarıdaki uygulamalardan Komut satırı (CMD)’yi kullanıyorum. Bu yüzden C:\ parametresinden de anlayabilirsiniz. Sonrasında da az önce de bahsettiğimzi “ruby” kelimesi ile yorumlayıcımızı çağırıyoruz ve ona -v parametresi ile bizeversiyon bilgisini iletmesini istiyoruz.
Ruby yorumlayıcısı da bize uslu ulu “ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32] ” metnini dönüyor. Burada ruby kelimesinden sonraki 2.2.3 kısımı blgisayarmızda yüklü olan ruby versiyonunu p’den sonraki 173 kısımı da yama versiyonunu belirtir. sonrasındaki paratez içindeki bölüm bu versiyonun yayın tarhini, köşeli parantez içindeki kısım ise widows derleyicisinin bilgilerini gösterir.
Yorumlayıcı ile ilk komutumuzu yazdık hadi biraz daha ilerleyelim ve “Hello World” uygulamamızı yazalım;
C:\> ruby -e 'puts "Hello, World!"'
Bu komutu yazdığımızda Yorumlayıcımız bize “Hello, World!” ile karşılık verecek. -e parametresi ile aslında Yorumlayıcımıza parametreden sonraki kısmın bir ruby kodu olduğunu ve ona göre yorumlamasını söylemiş oluyoruz. bu durumda da puts ile bize çıktı olarak vermesini sağlıyoruz. burada eğer ikinci bir satır da yazdırmak istersek iki tane -e parametresine ihtiyacımız olacak.
C:\> ruby -e 'puts "Hello,"' -e 'puts "World!"'
şeklinde yazdığımızda Yorumlayıcı bize cevap olarak aşağıdaki gibi dönecek.
Hello, World!
Bunun yerine bir dosyaya yazdığımız komutlarıda çalıştırabiliriz elbette bunun için de aşağıdaki gibi ruby komutundan sonra dosya ismimizi yazmamız ( ruby dosya_ismi.rb) gerekiyor.
Yani;
C:\> ruby Hello.rb
yazdığımızda bize
>Hello, World!
yanıtını verdiğini göreceksiniz.
IRB: Etkileşimli Ruby
Ruby Yorumlayıcısı bir çok komutu bu şekilde çalıştırabilmemize olanak sağlasada özellikle program yazarken ihtiyaç duyacağınız hızlı dönüşlerde çok fazla ihtiyacınızı karşılamayacaktır. Bu durumda ihtiyacınız olan yine Ruby tarafından bize sunulan ve Yorumlayıcı ile birlikte paketlenmiş olarak gelen IRB (Interactive Ruby) aracını kullanmak.
IRB aracını çalıştırmak için Komut satırına “irb” yazmanız yeterli olacak bundan sonra yazacağınız her kod sonrası enter tuşuna bastığınızda IRB Ruby yorumlayıcısınıda kullanarak size vermiş olduğunuz komutu algılayıp yorumlayıp sonucunu döndürecektir.
irb komutunu yazdıktan sonra karşınıza aşağıdaki gibi bir satır çıkacak ve sizden giriş bekleyecitir. Bu satırdaki ifadelerden irb (main) kısmında irb’nin aktif oalrak çalıştığı program, sonrasında gelen 001 buluulan satır bilgisini en sonda gelen 0 ise iç içe blokarın hangisinde olduğumuzu gösterir.
irb(main):001:0>
Bir örnekde irb ile yabileceklerimiz için verecek olursak aşağıdkai örnekte çalıştırdığımız komutlar sadece matematiksel işlemler bu işlemleri Ruby irb aracı ile bir hesap makinesi gibi hızı bir şekilde size sonuçlarını döndürebilir
irb(main):001:0> 12*3 => 36 irb(main):002:0> 12**3 => 1728 irb(main):003:0>
IRB’yi biraz daha yakından tanımak için http://tryruby.org/ sitesinden online olarak denemeler yapabilirsiniz.
İlerleyen günlerde yine IRB’den sıkça ve detaylı olarak bahsedeceğim. Şimdilik kısa ve öz bir şekilde anlatmaya çalıştım. Sorularınız olursa çekinmeden yorumalanından iletebilirsiniz.