Aug17

Ini sebagai dokumentasi aja, seringkali saya lupa cara meng-ignore direktori log supaya jangan sampai ter-commit ke SVN repositori, so ini caranya

Buka console, masuk ke directory RAILS_ROOT lalu ketik

svn propedit svn:ignore log/

setelah itu SVN akan memanggil editor, kalo editor tidak terpanggil dan muncul error, jangan lupa untuk ngeset SVN_EDITOR environment variable

di editor masukan semua file log yang akan di-ignore

development.log
production.log
server.log
test.log

lalu keluar dan jangan lupa di-save, setelah itu hapus file log tersebut dari SVN repositori

svn rm log/*

setelah itu silahkan perubahan yang ada di-commit

svn ci -m “ignore files inside log directory”

May07

We all know, Action Web Service (aws) no longer included in Rails 2, this makes me little bit frustation to integrate latest aws (1.2.6) to rails 2, that gems always make rails broken and raise error like this when we start the server

/usr/lib/ruby/gems/1.8/rubygems.rb:142:in `activate’: can’t activate actionpack (= 1.13.6, runtime), already activated actionpack-2.2.2 (Gem::Exception)

However, how fortunate me, Achmad Gozali, friend of mine in id-ruby suggested to used this modified aws in github and finally after i tried, my installation was succeed, so here the step

add github to your gem sources

gem sources -a http://gems.github.com/

install datanoise-actionwebservice gems, i use rails 2.2.2, so i should install datanoise-actionwebservice version 2.2.2 as well

gem install datanoise-actionwebservice -v=’2.2.2′

add this line to your config/environtment.rb (inside “Rails::Initializer.run do |config|” block)

config.gem ‘datanoise-actionwebservice’, :lib => ‘actionwebservice’, :version => ‘2.2.2′

try to start your web server, if it isn’t broken, that means your gems was successfully installed

ruby script/start

also you can make the basic code through generation

[aditya@aditya trunk]$ ruby script/generate web_service blabla
exists app/services/
exists app/controllers/
exists test/functional/
create app/services/blabla_api.rb
create app/controllers/blabla_controller.rb
create test/functional/blabla_api_test.rb

credit : thanks to Datanoise guys out there and Achmad Gozali of id-ruby to make this happen

May01

Skenarionya begini, katakanlah kita mempunyai 3 tabel, sellers, products dan orders, relasi antar tabelnya di definisikan di setiap model sebagai berikut :

file : app/models/seller.rb
	
class Seller < ActiveRecord::Base
  has_many :products
end
	
file : app/models/product.rb
	
class Product < ActiveRecord::Base
   belongs_to :seller
   has_many :orders
end
	
file : app/models/order.rb
	
class Order < ActiveRecord::Base
   belongs_to :product
end

nah suatu saat, kita ingin menampilkan data-data pesanan beserta nama penjualnya, di controller kita definisikan seperti ini :

Klik di sini kalau masih penasaran …

Apr02

Hal-hal di bawah ini adalah cara saya mempraktekan DRY (don’t repeat yourself) di Ruby on Rails

  • pertama, pertimbangkan untuk menyimpan kode di model
  • kedua, pertimbangkan lagi untuk menyimpan kode di model
  • ketiga, pertimbangkan lagi untuk menyimpan kode di model
  • kelima, kalo benar-benar nggak bisa, pertimbangkan tuk disimpan sebagai render partial
  • keenam, kalo gak bisa dijadikan render partial pertimbangkan tuk disimpen di helper
  • ketujuh, kalo nggak bisa disimpan di helper silahkan simpan di controller

Tambahan, ada 2 hal lagi tempat penyimpanan kode yang khusus di Ruby on Rails, di lib dan vendor directory, jika anda ingin membuat fungsi spesifik yang bisa tersedia di semua model atau controller atau view, anda bisa membuat module atau class dibawah directory lib, nah module atau class ini nantinya bisa anda include-kan di Controller, Model atau Helper sesuai dengan keinginan anda

Dan bilamana anda merasa lib tersebut layak dipublikasikan kepada umum, anda juga bisa mendistribusikannya sebagai ruby on rails plugin atau rubygem yang nantinya bisa disimpan di directory vendor

Jadi, begitulah cara saya mempraktekan konsep DRY secara praktis, tentang teorinya dan mengapa harus begitu silahkan cari saja artikelnya banyak bertebaran di internet

Oct27

Nginx (baca : Engine-X) adalah web server buatan Igor Sysoev, seorang Rusia, digunakan sebagai alternatif dari Apache Web Server, salah satu keunggulan yang menarik dari nginx adalah, nginx relatif lebih kecil dalam memakan resource memory ketimbang Apache, nginx juga sangat cepat dalam menangani file statis (javascript, html, image , css file). Di dunia Rails, nginx seringkali digunakan dalam mode production sebagai Frontend Web Server/Load Balancer

Di artikel ini saya akan mencoba menuliskan bagaimana cara untuk mengcompile,menginstall, mengkonfigurasi dan menjadikan nginx sbg web server untuk Aplikasi Ruby on Rails yang sudah support dengan SSL di Fedora 9/CentOS 5

Install SSL dan PCRE

yum install pcre pcre-devel openssl openssl-devel

Download nginx 0.6.2 (versi Stable terakhir)

wget http://sysoev.ru/nginx/nginx-0.6.32.tar.gz

Ekstrak, konfigurasi, compile lalu install

tar -xzf nginx-0.6.32.tar.gz
cd nginx-0.6.32
./configure –with-http_ssl_module –with-http_dav_module
make
sudo make install

Klik di sini kalau masih penasaran …