HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

GEM - Pundit ile authorization (cancan alternatifi)


Ryan Bates'in sırra kadem basmadan önce geliştirdiği GEM'lerden biri de cancan. Ryan ortadan kaybolup cancan'i yetim bırakınca Bryan Rite önderliğinde bir grup geliştirici başka bir proje olan cancancan'i sahiplendi ve bunu geliştirmeye devam etti.

Yani cancancan sanılanın aksine cancan'den sonra ortaya çıkmış veya cancan'in yokluğuna karşılık geliştirilmiş bir GEM değil, 2009'dan beri hayatta olan bir proje. Ancak en aktif geliştirme sürecini ise 2014'ün Ocak ve Eylül ayları arasında (Ryan'ın ortadan kayboluşu) yaşıyor. Ryan nerede birileri tartışadursun, biz ayakları yere daha sağlam bakan alternatiflere gidelim.

Continue reading

Ruby on rails ve güvenlik - routes


Rails uygulamalarında route'ların güvenliğini sağlarken Devise gibi authentication GEM'lerinin sağladığı helper'lardan ve lambda metodundan yararlanabilirsiniz. Örneğin sadece super_admin rolüne sahip kullanıcılara açık olmasını istediğiniz route'ları şu şekilde tanımlayabilirsiniz:

# config/routes.rb

authenticate :user, lambda { |u| u.is_super_admin? } do
  mount Resque::Server => '/admin/resque'
  namespace :admin do
    resources :ip_lists, except: :show
    resources :token_users, except: :show
  end
end

Artık admin/resque, admin/ip_lists ve admin/token_users yolları sadece super_admin'ler için erişilebilir olacak.

Continue reading

Rbenv ile ruby ve rails kurulumu - debian 7


Rbenv, RVM gibi ancak RVM'ye göre çok daha basit bir şekilde, birden çok Ruby versiyonunu birlikte kullanmak için geliştirilmiş bir araçtır. Sisteminizde tek bir Ruby sürümüne ihtiyaç duyuyorsanız dahi, gelecekte farklı sürümlere ihtiyaç duyabileceğiniz için rbenv ile kurulum yapmanızı öneririm.

Öncelikle rbenv'i /home/foo altına klonlayın:

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

Daha sonra PATH'e rbenv değişkenlerini ekleyin:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
Continue reading

Elasticsearch kurulumu - debian ve ubuntu


ElasticSearch kurulumu yapabilmek için öncelikle sisteminizde OpenJDK kurulu olmalıdır. OpenJDK'yı kurduktan sonra ElasticSearch kurulumuna geçebilirsiniz.

Öncelikle GPG anahtarını ekleyin:

$ wget -qO - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -

Aşağıda ki satırı /etc/apt/sources.list dosyanıza ekleyin:

deb http://packages.elasticsearch.org/elasticsearch/1.3/debian stable main

Kurulumu gerçekleştirin:

$ sudo apt-get update
$ sudo apt-get install elasticsearch
Continue reading

GEM - unicode utils


MERNİS'e yaptığım bir request'te, Ruby'nin upcase metodu kaynaklı Türkçe karakter problemi ile karşılaştım.

SOAP request'ini incelediğimde "ü" karakterinin büyük harfe çevrilemediğini gördüm:

<env:Body>
  <tns:TCKimlikNoDogrula>
  ...
    <tns:Ad>MUSTAFA SERHAT</tns:Ad>
    <tns:Soyad>DüNDAR</tns:Soyad>
  ...
  </tns:TCKimlikNoDogrula>
</env:Body>

Türkçe karakterlerin doğru şekilde büyük ve küçük harflere çevrilmesi için unicode_utils GEM'ini kullanabilirsiniz. Daha sık güncellenen ve daha performanslı benzer bir GEM olarakta unicode'u kullanabilirsiniz. Bu yazıda unicode_utils GEM'i takip edilecek.

Continue reading