lab2023 - internet teknolojileri

Ruby on Rails Active Record’ta Toplu Kayıt Güncelleme Işlemi - Update_all

update_all metodu ile toplu kayıt güncelleyebiliriz.

1
update_all(updates, conditions = nil, options = {}) # public

Aldığı parametreler;

  • updates : Güncellenecek alan(lar) string, array veya hash alabilir. SQL deki SET alanı.
  • conditions : Koşul(lar) string, array veya hash alabilir. SQL deki WHERE alanı.
  • options : Ek seçenekler için. LIMIT, ORDER gibi gibi.

Sayfalamada (Will_paginate) Sayfa Numarası İçin Özel Parametre Geçme

Sayfalama için will_paginate gemini kullanıyoruz. Bazı durumlarda sayfada iki ayrı collection’ a göre sayfala yapmamız gerekiyor. Dolayısıyla page parametresini her iki collection için kullanamıyoruz. Böyle durumlarda kendimiz parametre verebiliriz;

1
2
3
4
5
# views
= will_paginate @credits, param_name: :credit_page, page_links: false

# Controller
@credits = @credits.paginate(:page => params[:credit_page])

İyi çalışmalar

Ruby on Rails REST API’de HTTP Basic Authentication Kullanarak Kullanıcı Doğrulama

Temel http kullanıcı doğrulama yöntemi. Rails’ te kullanımı inanılmaz derecede kolay ve çoğu API istemcilerinde hiçbir sorun olmadan çalışabiliyor.

Controller’ da http_basic_authentication_with metodunu çağırıp parametre olarak user_name ve password geçiyoruz.

1
http_basic_authenticate_with name: 'admin', password: 'secret'

Şimdi uygulamamıza curl ile istek yapalım.

API Nedir ?

Application Programming Interface kelimelerinin kısaltılmış halidir. Application Programming Interface’ i açıklayacak olursak; Uygulama Geliştirme Arayüzü demektir. Buradaki Arayüz olarak çevirdiğimiz Interface kavramı kafamızı karıştırmasın. Interface Object-oriented programlamada kullanıdığımız Interface Class’ ının tanımıyla aynıdır. Interface Class’ lar kendini kullanacak alt class lara ; “Eğer sen beni kullanacaksan benim bazı metodlarım var. Sende onları kendi içinde tanımlayacaksın ve argumanları şu şu olacak diyerek kendi belirledikleri kuralları zorunlu hale getirirler. API kelimesinde geçen Interface kelimeside buradaki ile aynı anlamı taşımaktadırlar. Konuyu daha iyi anlamak için Interface Class larını incelemnizde fayda var diye düşünüyorum.

Interface kavramına fazla takılmadan konumuza devam edelim.

Rails Projelerinde Heroku Scheduler Kullanımı

Rails ile geliştiridiğim projelerimi genelde heroku üzerinde tutuyorum. Bu yazımda da bir projede kullandığım Scheduler ‘i anlatacağım.

Scheduler (Zamanlayıcı) Heroku üzerindeki projelerimizde cron yerine kullanabilecegimiz, cron ‘dan daha gelişmiş add-on. Mesela sisteminizdeki kullanıcıları günlük olarak gelişmelereden haberdar etmek istiyoruz. Hergün uygulamaya girip kendimiz mail gönderme fonksiyonunu çalıştırmayacağız herhalde :). İşte Scheduler burada devreye girip bizim yerimize istediğimiz zamanlarda mail gönderme fonksiyonunu çalıştırıyor.

Ruby’de String Replace (String Degistirme)

PHP de kullandığımız str_replace() fonksiyonu yok tabi :). Ruby de string değiştirme için bir kaç fonksiyon bulunmakta. İlk fonksiyonu tr() inceleyelim.

String içerisinde karakter değiştirmek istiyorsak;

1
"Merhaba".tr("aeiou", "*") # => "M*rh*b*"

Görüldüğü gibi “hello” stringindeki “a”, “e”, “i”, “o”, “u” karakterlerini “*” karakterine çeviriyor.

Eğer bir string içerisindeki sembolleri kaldırmak istersek;

1
"Merhaba !@#$%^&*()_+ Ruby!".tr("!@#$%^&*()_+", "") # => "Merhaba Ruby"

Bety Url Kısaltma Servisi

http://bety.in Ruby On Rails kullanarak geliştirdiğim açık kaynak kodlu url kısaltma servisi. Fırsat buldukça geliştirmeye devam edeceğim. Kaynak kodlara github üzerinden ulaşabilirsiniz.

Bety’ yi geliştirme aşamasında Ruby ve Rails kodlama standartlarına ulaştım. Ruby Türkçe mail grubu sağolsun :)

Ruby için kodlama standartları : https://github.com/bbatsov/ruby-style-guide

Rails için kodlama standartları : https://github.com/bbatsov/rails-style-guide

Pigon Web Servisleri

Pigon Web Servisleri, yazılım geliştiricilerinin ihityaç duyabileceği verileri API olarak sunan bir sistemdir.Sistem üzerinde sunulan servislerin kaynak kodu dahil olmak üzere hepsi açık kaynaklıdır. Proje şu anda Name, University ve Location API ile hizmet vermektedir.