Ruby , Ruby'de uygulama geliştirmek isteyen geliştiriciler için güçlü bir programlama dili sağlamak üzere sıfırdan tasarlanmış bir çoklu platform, serbestçe dağıtılmış, zengin ve açık kaynaklı bir komut satırı yazılımıdır. .
Özellikler, birçok özellik
Temel özellikler Ada ve Eyfel'den esinlenilen basit bir sözdizimi, işletim sistemi bağımsız iş parçacığı, hataları işlemek için istisna işleme yetenekleri, çok sayıda işleç, salt ve tam nesne yönelimli bir dil ve bir sınıfa yöntem eklemek için destek içerir.
Ayrıca, Ruby yalnızca tek bir devralma, gerçek kapanışlar, sözdiziminde bloklar, gerçek bir işaret-ve-çöp toplama toplayıcısı, C uzantıları yazma için destek, tamsayılar, uzantı kitaplıklarının dinamik olarak yüklenmesine yönelik destek ve bunu yapmaz. değişken bildirimlere ihtiyaç var.
Ruby ile çalışmaya başlama
Ruby programlama dilini bir GNU / Linux işletim sistemine kurmak çok kolay bir iştir, çünkü paket tüm ana dağıtımlarda doğrudan ana yazılım havuzlarından indirilebilir. Yüklemek için yerleşik Yazılım Merkezi uygulamasını kullanın.
Alternatif olarak, en son sürüm Softoware'de ücretsiz olarak dağıtılan kaynak paketi kullanılarak kurulabilir. Basitçe indirin ve Home dizininize kaydedin, arşivi açın ve bir terminal öykünücüsü uygulamasında ayıklanan arşiv dosyalarının konumuna gidin (ör. Cd /home/softoware/ruby-2.2.0).
& lsquo; ./ configure & rsquo; uygulamasını çalıştırın. projeyi yapılandırmak için komut (belirli bir donanım mimarisi için Ruby'yi iyileştirmek için kullanılabilir seçenekleri görüntülemek üzere & lsquo; ./ configure --help & rsquo; komutunu kullanabilirsiniz). Ardından, & lsquo; make & rsquo; derlemek için komut ve & lsquo; sudo make install & rsquo; yüklemek için komut.
GNU / Linux, Windows, Mac OS X, BeOS ve OS / 2 üzerinde desteklenir
Ruby, tüm GNU / Linux dağıtımlarında ve Mac OS X, BeOS, OS / 2 ve Microsoft Windows dahil olmak üzere herhangi bir UNIX benzeri işletim sisteminde başarıyla kullanılabilen çapraz platform yazılımdır. Hem 32 bit hem de 64 bit bilgisayar platformlarıyla uyumludur.
Bu sürümde yeni olan :
- Dondurulmuş Dize Literal Pragma tanıtıldı. Ruby 2.1 ile, "str" .freeze, nesne tahsisini azaltmak için optimize edilmiştir. Ruby 2.3, kaynak dosyalardaki tüm dize değişmezlerini dondurmak için yeni bir sihirli yorum ve komut satırı seçeneği sunar. Ayrıca, hata ayıklama için, nesnenin & quot; dondurulmuş Dize değiştirilemez & quot; --debug = frozen-string-literal komut satırı seçeneği ile hata.
- C #, Groovy ve Swift'de zaten mevcut olan güvenli navigasyon operatörü (yalnız operatör olarak adlandırılır) &., obj & .foo olarak kullanımda kolaylık sağlamak için kullanılmaya başlandı. Array # dig ve Hash # dig de eklenir. Bu deneyin gibi davranır unutmayın! Özel Desteğiyle, yalnızca nil ile ilgilenen.
- did_you_mean gem paketlenmiştir. Did_you_mean gem, hata ayıklamayı kolaylaştırmak için NameError ve NoMethodError'daki adayları gösterir.
- RubyVM :: InstructionSequence # to_binary ve .load_from_binary deneysel özellik olarak tanıtıldı. Bu özelliklerle, bir ISeq (bytecode) ön derleme sistemi yapabiliriz.
- Ayrıca birçok performans geliştirmesi, örneğin yeniden giriş yöntemi giriş veri yapısı, yeni tablo veri yapısını tanıtma, Proc # çağrısı, nesne ayırma ve yöntem çağrı kodu için makine kod düzeyi ayarlama, daha akıllı örnek değişken veri yapısı, Soket ve I / O, "istisnai" ifadesine izin vermektedir. Yüksek performanslı engelleme olmayan G / Ç vb. için anahtar kelimeler.
- Dondurulmuş Dize Literal Pragma tanıtıldı. Ruby 2.1 ile, "str" .freeze, nesne tahsisini azaltmak için optimize edilmiştir. Ruby 2.3, kaynak dosyalardaki tüm dize değişmezlerini dondurmak için yeni bir sihirli yorum ve komut satırı seçeneği sunar. Ayrıca, hata ayıklama için, nesnenin & quot; dondurulmuş Dize değiştirilemez & quot; --debug = frozen-string-literal komut satırı seçeneği ile hata.
- C #, Groovy ve Swift'de zaten mevcut olan güvenli navigasyon operatörü (yalnız operatör olarak adlandırılır) &., obj & .foo olarak kullanımda kolaylık sağlamak için kullanılmaya başlandı. Array # dig ve Hash # dig de eklenir. Bu deneyin gibi davranır unutmayın! Özel Desteğiyle, yalnızca nil ile ilgilenen.
- did_you_mean gem paketlenmiştir. Did_you_mean gem, hata ayıklamayı kolaylaştırmak için NameError ve NoMethodError'daki adayları gösterir.
- RubyVM :: InstructionSequence # to_binary ve .load_from_binary deneysel özellik olarak tanıtıldı. Bu özelliklerle, bir ISeq (bytecode) ön derleme sistemi yapabiliriz.
- Ayrıca birçok performans geliştirmesi, örneğin yeniden giriş yöntemi giriş veri yapısı, yeni tablo veri yapısını tanıtma, Proc # çağrısı, nesne ayırma ve yöntem çağrı kodu için makine kod düzeyi ayarlama, daha akıllı örnek değişken veri yapısı, Soket ve I / O, "istisnai" ifadesine izin vermektedir. Yüksek performanslı engelleme olmayan G / Ç vb. için anahtar kelimeler.
- Dondurulmuş Dize Literal Pragma tanıtıldı. Ruby 2.1 ile, "str" .freeze, nesne tahsisini azaltmak için optimize edilmiştir. Ruby 2.3, kaynak dosyalardaki tüm dize değişmezlerini dondurmak için yeni bir sihirli yorum ve komut satırı seçeneği sunar. Ayrıca, hata ayıklama için, nesnenin & quot; dondurulmuş Dize değiştirilemez & quot; --debug = frozen-string-literal komut satırı seçeneği ile hata.
- C #, Groovy ve Swift'de zaten mevcut olan güvenli navigasyon operatörü (yalnız operatör olarak adlandırılır) &., obj & .foo olarak kullanımda kolaylık sağlamak için kullanılmaya başlandı. Array # dig ve Hash # dig de eklenir. Bu deneyin gibi davranır unutmayın! Özel Desteğiyle, yalnızca nil ile ilgilenen.
- did_you_mean gem paketlenmiştir. Did_you_mean gem, hata ayıklamayı kolaylaştırmak için NameError ve NoMethodError'daki adayları gösterir.
- RubyVM :: InstructionSequence # to_binary ve .load_from_binary deneysel özellik olarak tanıtıldı. Bu özelliklerle, bir ISeq (bytecode) ön derleme sistemi yapabiliriz.
- Ayrıca birçok performans geliştirmesi, örneğin yeniden giriş yöntemi giriş veri yapısı, yeni tablo veri yapısını tanıtma, Proc # çağrısı, nesne ayırma ve yöntem çağrı kodu için makine kod düzeyi ayarlama, daha akıllı örnek değişken veri yapısı, Soket ve I / O, "istisnai" ifadesine izin vermektedir. Yüksek performanslı engelleme olmayan G / Ç vb. için anahtar kelimeler.
- Dondurulmuş Dize Literal Pragma tanıtıldı. Ruby 2.1 ile, "str" .freeze, nesne tahsisini azaltmak için optimize edilmiştir. Ruby 2.3, kaynak dosyalardaki tüm dize değişmezlerini dondurmak için yeni bir sihirli yorum ve komut satırı seçeneği sunar. Ayrıca, hata ayıklama için, nesnenin & quot; dondurulmuş Dize değiştirilemez & quot; --debug = frozen-string-literal komut satırı seçeneği ile hata.
- C #, Groovy ve Swift'de zaten mevcut olan güvenli navigasyon operatörü (yalnız operatör olarak adlandırılır) &., obj & .foo olarak kullanımda kolaylık sağlamak için kullanılmaya başlandı. Array # dig ve Hash # dig de eklenir. Bu deneyin gibi davranır unutmayın! Özel Desteğiyle, yalnızca nil ile ilgilenen.
- did_you_mean gem paketlenmiştir. Did_you_mean gem, hata ayıklamayı kolaylaştırmak için NameError ve NoMethodError'daki adayları gösterir.
- RubyVM :: InstructionSequence # to_binary ve .load_from_binary deneysel özellik olarak tanıtıldı. Bu özelliklerle, bir ISeq (bytecode) ön derleme sistemi yapabiliriz.
- Ayrıca birçok performans geliştirmesi, örneğin yeniden giriş yöntemi giriş veri yapısı, yeni tablo veri yapısını tanıtma, Proc # çağrısı, nesne ayırma ve yöntem çağrı kodu için makine kod düzeyi ayarlama, daha akıllı örnek değişken veri yapısı, Soket ve I / O, "istisnai" ifadesine izin vermektedir. Yüksek performanslı engelleme olmayan G / Ç vb. için anahtar kelimeler.
- Dondurulmuş Dize Literal Pragma tanıtıldı. Ruby 2.1 ile, "str" .freeze, nesne tahsisini azaltmak için optimize edilmiştir. Ruby 2.3, kaynak dosyalardaki tüm dize değişmezlerini dondurmak için yeni bir sihirli yorum ve komut satırı seçeneği sunar. Ayrıca, hata ayıklama için, nesnenin & quot; dondurulmuş Dize değiştirilemez & quot; --debug = frozen-string-literal komut satırı seçeneği ile hata.
- C #, Groovy ve Swift'de zaten mevcut olan güvenli navigasyon operatörü (yalnız operatör olarak adlandırılır) &., obj & .foo olarak kullanımda kolaylık sağlamak için kullanılmaya başlandı. Array # dig ve Hash # dig de eklenir. Bu deneyin gibi davranır unutmayın! Özel Desteğiyle, yalnızca nil ile ilgilenen.
- did_you_mean gem paketlenmiştir. Did_you_mean gem, hata ayıklamayı kolaylaştırmak için NameError ve NoMethodError'daki adayları gösterir.
- RubyVM :: InstructionSequence # to_binary ve .load_from_binary deneysel özellik olarak tanıtıldı. Bu özelliklerle, bir ISeq (bytecode) ön derleme sistemi yapabiliriz.
- Ayrıca birçok performans geliştirmesi, örneğin yeniden giriş yöntemi giriş veri yapısı, yeni tablo veri yapısını tanıtma, Proc # çağrısı, nesne ayırma ve yöntem çağrı kodu için makine kod düzeyi ayarlama, daha akıllı örnek değişken veri yapısı, Soket ve I / O, "istisnai" ifadesine izin vermektedir. Yüksek performanslı engelleme olmayan G / Ç vb. için anahtar kelimeler.
- Dondurulmuş Dize Literal Pragma tanıtıldı. Ruby 2.1 ile, "str" .freeze, nesne tahsisini azaltmak için optimize edilmiştir. Ruby 2.3, kaynak dosyalardaki tüm dize değişmezlerini dondurmak için yeni bir sihirli yorum ve komut satırı seçeneği sunar. Ayrıca, hata ayıklama için, nesnenin & quot; dondurulmuş Dize değiştirilemez & quot; --debug = frozen-string-literal komut satırı seçeneği ile hata.
- C #, Groovy ve Swift'de zaten mevcut olan güvenli navigasyon operatörü (yalnız operatör olarak adlandırılır) &., obj & .foo olarak kullanımda kolaylık sağlamak için kullanılmaya başlandı. Array # dig ve Hash # dig de eklenir. Bu deneyin gibi davranır unutmayın! Özel Desteğiyle, yalnızca nil ile ilgilenen.
- did_you_mean gem paketlenmiştir. Did_you_mean gem, hata ayıklamayı kolaylaştırmak için NameError ve NoMethodError'daki adayları gösterir.
- RubyVM :: InstructionSequence # to_binary ve .load_from_binary deneysel özellik olarak tanıtıldı. Bu özelliklerle, bir ISeq (bytecode) ön derleme sistemi yapabiliriz.
- Ayrıca birçok performans geliştirmesi, örneğin yeniden giriş yöntemi giriş veri yapısı, yeni tablo veri yapısını tanıtma, Proc # çağrısı, nesne ayırma ve yöntem çağrı kodu için makine kod düzeyi ayarlama, daha akıllı örnek değişken veri yapısı, Soket ve I / O, "istisnai" ifadesine izin vermektedir. Yüksek performanslı engelleme olmayan G / Ç vb. için anahtar kelimeler.
- Dondurulmuş Dize Literal Pragma tanıtıldı. Ruby 2.1 ile, "str" .freeze, nesne tahsisini azaltmak için optimize edilmiştir. Ruby 2.3, kaynak dosyalardaki tüm dize değişmezlerini dondurmak için yeni bir sihirli yorum ve komut satırı seçeneği sunar. Ayrıca, hata ayıklama için, nesnenin & quot; dondurulmuş Dize değiştirilemez & quot; --debug = frozen-string-literal komut satırı seçeneği ile hata.
- C #, Groovy ve Swift'de zaten mevcut olan güvenli navigasyon operatörü (yalnız operatör olarak adlandırılır) &., obj & .foo olarak kullanımda kolaylık sağlamak için kullanılmaya başlandı. Array # dig ve Hash # dig de eklenir. Bu deneyin gibi davranır unutmayın! Özel Desteğiyle, yalnızca nil ile ilgilenen.
- did_you_mean gem paketlenmiştir. Did_you_mean gem, hata ayıklamayı kolaylaştırmak için NameError ve NoMethodError'daki adayları gösterir.
- RubyVM :: InstructionSequence # to_binary ve .load_from_binary deneysel özellik olarak tanıtıldı. Bu özelliklerle, bir ISeq (bytecode) ön derleme sistemi yapabiliriz.
- Ayrıca birçok performans geliştirmesi, örneğin yeniden giriş yöntemi giriş veri yapısı, yeni tablo veri yapısını tanıtma, Proc # çağrısı, nesne ayırma ve yöntem çağrı kodu için makine kod düzeyi ayarlama, daha akıllı örnek değişken veri yapısı, Soket ve I / O, "istisnai" ifadesine izin vermektedir. Yüksek performanslı engelleme olmayan G / Ç vb. için anahtar kelimeler.
- Dondurulmuş Dize Literal Pragma tanıtıldı. Ruby 2.1 ile, "str" .freeze, nesne tahsisini azaltmak için optimize edilmiştir. Ruby 2.3, kaynak dosyalardaki tüm dize değişmezlerini dondurmak için yeni bir sihirli yorum ve komut satırı seçeneği sunar. Ayrıca, hata ayıklama için, nesnenin & quot; dondurulmuş Dize değiştirilemez & quot; --debug = frozen-string-literal komut satırı seçeneği ile hata.
- C #, Groovy ve Swift'de zaten mevcut olan güvenli navigasyon operatörü (yalnız operatör olarak adlandırılır) &., obj & .foo olarak kullanımda kolaylık sağlamak için kullanılmaya başlandı. Array # dig ve Hash # dig de eklenir. Bu deneyin gibi davranır unutmayın! Özel Desteğiyle, yalnızca nil ile ilgilenen.
- did_you_mean gem paketlenmiştir. Did_you_mean gem, hata ayıklamayı kolaylaştırmak için NameError ve NoMethodError'daki adayları gösterir.
- RubyVM :: InstructionSequence # to_binary ve .load_from_binary deneysel özellik olarak tanıtıldı. Bu özelliklerle, bir ISeq (bytecode) ön derleme sistemi yapabiliriz.
- Ayrıca birçok performans geliştirmesi, örneğin yeniden giriş yöntemi giriş veri yapısı, yeni tablo veri yapısını tanıtma, Proc # çağrısı, nesne ayırma ve yöntem çağrı kodu için makine kod düzeyi ayarlama, daha akıllı örnek değişken veri yapısı, Soket ve I / O, "istisnai" ifadesine izin vermektedir. Yüksek performanslı engelleme olmayan G / Ç vb. için anahtar kelimeler.
- Bu sürümde, bir RubyGems etki alanı için güvenlik düzeltmesi de var ad doğrulama güvenlik açığı. CVE-2015-3900 RubyGems 2.4.6 ve önceki sürümlerde ele geçirme güvenlik açığı isteğinde bulunun
- Bu sürümde bir OpenSSL uzantısı için güvenlik düzeltmesi yer alıyor ana makine adı doğrulama güvenlik açığı.
- VM (yöntem önbellek)
- RGenGC (Bkz. ko1'in RubyKaigi sunumu ve RubyConf 2013 sunumu)
- iyileştirmeler # 8481 # 8571
- sözdizimi değişiklikleri:
- Ondalık / Karmaşık Edebiyat # 8430
- def dönüş değeri # 3753
- bignum:
- GMP # 8796'yı kullan
- Dize # fırçalama # 8414
- Socket.getifaddrs # 8368
- RDoc 4.1.0 ve RubyGems 2.2.0
- & quot; literal & quot; freze artık # 9042 optimize edildi
- İstisna ekle # neden # 8257
- BigDecimal, JSON, NKF, Rake, RubyGems ve RDoc gibi kitaplıkları güncelle
- küfürleri kaldır # 8584
- Dil temel özellikleri:
- API tasarımına esneklik kazandıran anahtar kelime argümanları
- Bir sınıfı genişletmenin yeni bir yolu olan Modül # prepend
- Kolayca bir dizi sembol yaratan bir literal% i
- __ dir__
- Pek çok sihirli yorumu geçersiz kılan UTF-8 varsayılan kodlaması
- Yerleşik kitaplıklar:
- Sayısız # tembel ve Enumerator :: Tembel, (muhtemelen sonsuz) tembel akışı için
- Enumerator # boyut ve Aralık # boyutu
- #to_h, Hash’a dönüştürülecek yeni bir sözleşme
- Onigmo, yeni bir regexp motoru (Oniguruma'nın çatalı)
- Eşzamansız istisna işleme API'si
- Hata ayıklama desteği:
- Üretimde çalışma zamanı teşhisi sağlayan DTrace desteği
- İyileştirilmiş bir izleme API'sı olan TracePoint
- Performans iyileştirmeleri:
- Bitmap işaretlemeyle GC optimizasyonu
- Kernel # Rails'i çok hızlı başlatmayı sağlayan optimizasyon gerektirir
- Yöntem gönderimi gibi VM optimizasyonu
- Float operasyon optimizasyonu
- Bu sürümde, paketlenmiş JSON ve REXML ile ilgili güvenlik düzeltmeleri var:
- JSON'da Hizmet Reddi ve Güvenli Olmayan Nesne Oluşturma Güvenlik Açığı (CVE-2013-0269)
- Varlık genişletme REXML'deki DoS savunmasızlığı (XML bomba)
- Ve bazı küçük hata düzeltmeleri de dahildir.
- Bu sürümde, paketlenmiş bir güvenlik düzeltmesi bulunur. RDoc.
- Bu sürümde, paketlenmiş bir güvenlik düzeltmesi bulunur. RDoc.
- İstisna # güvenlik ihlali hakkında güvenlik açığı / NameError # to_s (CVE-2012-4464, CVE-2012-4466)
- Yasadışı bir NUL karakterinin eklenmesinin neden olduğu kasıtsız dosya oluşturma
- diğer birçok hata düzeltmesi.
Sürüm 2.5.0’da yeni: :
Sürüm 2.4.2’de yeni: :
Sürüm 2.4.1’de yeni: :
2.4.0 sürümünde yeni :
Sürüm 2.3.3'te yeni: :
Sürüm 2.3.1’de yeni: :
Sürüm 2.3.0’da yeni: :
Sürüm 2.2.3'te yeni olan :
Sürüm 2.2.2'de yeni olan :
2.2.0 sürümünde yeni :
Sürüm 2.0.0-p0’da yeni: :
Yürütülmekte olan dosyanın dizin adını veren
Tembel boyut değerlendirmesi için
1.9.3-p392 sürümünde yeni: :
1.9.3-p385 sürümünde yeni :
1.9.3-p384 sürümünde yeni :
1.9.3-p286 sürümünde yeni :
Yorum Bulunamadı