เกริ่นก่อนนิดนึง อะไรคือ Merb??
Merb ก็เป็น MVC Framework เช่นเดียวกับ Ruby on Rails เพียงแต่มันสามารถกำหนดฝั่ง View และ Model เองได้ แต่เห็นจะเน้นไปที่ฝั่ง Model มากกว่า สามสิ่งที่นิยมใช้กับฝั่ง Model ก็คือ ActiveRecore, DataMapper และ Sequel
นั่นหมายความว่า เราสามารถจะเอาไอ้นั่น ไอ้นี่ มาปะติดปะต่อเองได้ เรื่องของเรื่องคือ Ruby on Rails มันช้า magic มันเยอะ บางคนไม่ชอบ magic เพราะมันเกินความจำเป็น(แต่ผมชอบ) ถ้าตัดออกได้ หรือเปลี่ยนได้ ก็น่าจะดีกว่า กอปรกับความเทอะทะของ Rails เอง ทีมที่พัฒนา Merb ก็เลยจัดการเขียนใหม่ซะ
จุดเด่นโดยรวมของ Merb ก็คือ เรื่องความเร็ว(ที่ดีกว่า Rails) และการเลือกใช้ฝั่ง View และ Model เองได้(ผมเลือก DataMapper)
มาเริ่มติดตั้งกัน
ผมจะติ๊งต่างว่าทุกท่านที่เข้ามาอ่านใน blog ผม คงจะเคยติดตั้ง Rails กันมาบ้างแล้ว และสิ่งหนึ่งที่จำเป็นต้องมีคือ RubyGems ดังนั้น ผมจึงข้ามเรื่องการติดตั้ง RubyGems ไป
ก่อนที่จะติดตั้งได้สมบูรณ์ ก็ลองผิดลองถูกมานาน จนได้สูตรสำเร็จว่า update มันใหม่ให้หมด ก็ติดตั้งได้เอง ก็เริ่มด้วยการ upgrade RubyGems ละกัน
$ sudo gem update --system
และ Ruby(1.8.6 เป็นอย่างต่ำ)
วิธีการ upgrate ขึ้นอยู่กับแต่ละท่านครับ บางคน apt-get บางคน MacPorts หรือบางคนก็ compile เองแม่งเลย
สิ่งต่อไปที่ต้องมีคือ Git
บน Ubuntu
$ sudo apt-get install git
บน OSX Leopard
บน OSX Tiger
ก่อนจัดการกับ Merb ก็ติดตั้งพวก gem dependency ก่อน
$ sudo gem install rack mongrel json erubis mime-types rspec hpricot mocha rubigen haml markaby mailfactory ruby2ruby
จากนั้น clone Merb มาด้วย
$ git clone git://github.com/wycats/merb-core.git
$ git clone git://github.com/wycats/merb-plugins.git
$ git clone git://github.com/wycats/merb-more.git
แล้วก็ติดตั้ง
$ cd merb-core ; rake install ; cd ..
$ cd merb-more ; rake install ; cd ..
$ cd merb-plugins; rake install ; cd ..
ฝั่ง Model ผมเลือก DataMapper เพราะหน้าตาคล้ายกับ ActiveRecord แต่เบากว่า
clone driver ก่อน
$ git clone git://github.com/sam/extlib.git
$ git clone git://github.com/sam/do.git
แล้วก็ติดตั้ง
$ cd extlib ; rake install ; cd ..
$ cd do
$ cd data_objects ; rake install ; cd ..
$ cd do_mysql # || do_postgres || do_sqlite3
$ rake install
ผมเลือก mysql
ขั้นตอนนี้จะมีปัญหานิดหน่อย ขณะที่ติดตั้ง do_mysql
บน Ubuntu ถ้าหากใช้ mysql ที่ติดตั้งเอง แล้ว home directory มันไม่อยู่ที่ default path มันจะมองหา mysql home ไม่เจอ และอีกปัญหานึงคือ มันจะหา mysql.h ไม่เจอ วิธีซ่อมคือ
$ sudo apt-get install mysql
และ libmysqlclient15 สำหรับ myslq.h มันจะไปอยู่ใน /usr/include/mysql
$ sudo apt-get install libmysqlclient15-dev
สำหรับ OSX ก็เหมือนกัน มันจะหา home directory ไม่เจอ ผมแนะนำให้โหลดจากเว็บมันเลย ที่หน้า download อันนี้มี mysql.h มาให้ด้วย
มันยังไม่ใช่แค่นี้ ต้องไปใช้กำลังกันหน่อย
ตอนติดตั้ง mysql ไอ้ home directory มันจะไปอยู่ที่ /usr/local/mysql
ก็ต้องไประบุเพิ่มนิดนึงใน Rakefile ของ do_mysql จะมี
1
2
3
| task :install => [ :package ] do
sh %{#{SUDO} gem install --local pkg/#{spec.name}-#{spec.version} --no-update-sources}, :verbose => false
end
|
ให้เพิ่ม -- --with-mysql-dir=/usr/local/mysql ไปด้วย เป็น
1
2
3
| task :install => [ :package ] do
sh %{#{SUDO} gem install --local pkg/#{spec.name}-#{spec.version} --no-update-sources -- --with-mysql-dir=/usr/local/mysql}, :verbose => false
end
|
ยังไม่จบครับ clone ตัว DataMapper กันต่อ
git clone git://github.com/sam/dm-core.git
git clone git://github.com/sam/dm-more.git
แล้วก็ติดตั้ง
$ cd dm-core ; rake install ; cd ..
$ cd dm-more ; rake install
เท่านี้น่าจะเสร็จสิ้น ลองแบบง่ายๆ
$ merb-gen app your_project_name
$ cd your_project_name
$ merb
ก็น่าจะทำงานได้ปกติ ถ้าไม่ปกติ ก็ลง comment หรือ error ไว้ได้ครับ จะช่วย debug
ปล. ยังมีตอนต่อไปอีกหลายตอนครับ
ปอ. สำหรับบน Windows ไปเอาตัวรอดกันเองนะครับ =='
ข้อมูลจาก merb.4ninjas